天天看點

mysql遇到的坑

環境:ubuntu16.4 mysql版本5.7.19

2.使用者無法通過SSH遠端通路 先用root運作mysql -uroot -p,啟動mysql 然後再mysql界面下運作grant all privileges on *.* to yszhu@"%" identified by "12345678" with grant option 設定yszhu使用者遠端通路mysql的權限,密碼為12345678

3.mysql.sock找不到 查找.sock檔案。通過/etc/mysql/mysql.conf.d/mysqld.cnf,找到mysqld.sock檔案所在/var/run/mysqld/mysqld.sock ,實作用pymysql連接配接。書上寫的是mysql.sock,但是伺服器上的名字是mysqld.sock,可能版本不一樣。

4.設定mysql字元集 mysql> show variables like '%char%';檢視預設的各種字元集然後用/etc/mysql目錄下看到my.cnf,網絡上很多說是在這個檔案裡添加内容,但是我在winscp上看到這個檔案感覺是快捷方式。打開看一下檔案,顯示:!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ 估計是先讀取第一行的檔案,然後讀取第二行檔案的意思,是以找到第一行的codf.d檔案夾,找到mysql.cnf檔案,打開一看,裡面隻有 [mysql]一行,沒有其他内容,于是按照網絡上找到的資料将整個檔案修改為: [client] default-character-set=utf8

[mysql] default-character-set=utf8

[mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 儲存檔案,重新開機mysql,然後 mysql> show variables like '%char%',發現字元集改變了。成功。

5.資料寫入報錯 建立table,插入漢字,報錯Incorrect string value,大概是編碼問題。 mysql> alter table onlinetest convert to character set utf8;将table編碼噶為utf8就可以了 6.pymysql寫入mysql的資料都帶有引号,在資料庫操作中很不友善。 UPDATE [table] SET title=REPLACE(title,'\'',''); title表示要操作的字段

7.telnet連不上3306端口,pymysql連不上伺服器

百度各種方法不試過了,改權限,改mysql配置不行,最後發現是阿裡雲安全組設定裡面端口開放的限制。

隻開了 3389和22端口。于是将mysql的端口修改為3389,重新開機伺服器,大功告成。

繼續閱讀