在做django+mysql項目的時候,遇到中文報錯問題。
問題分析:是由於mysql數據庫,字符集的問題
在cmd命令行模式進入mysql
mysql -uroot -p以root身份進入mysql客戶端, show variables like 'char%';查看數據庫編碼
發現有一些不是utf8
| character_set_database | latin1 | | character_set_server | latin1 |
那么怎么修改成utf8從而支持中文呢。
在mysql跟目錄下,有一個my.ini 如果沒有手動建一個my.ini文件。
填入以下內容即可:
[mysqld] basedir="D:/software/mysql" datadir="D:/software/mysql/data" port=3306 init_connect='SET NAMES utf8' character-set-server = utf8 [client] port=3306 default-character-set=utf8
找到[client]添加default-character-set=utf8
找到[mysqld]添加character-set-server = utf8
網上資料很多,但是不一定好使哈,這主要是根據mysql版本有關。
網上有的解決辦法是在[mysqld]中添加default-character-set=utf8這個方法在新版中是沒有的。 如果你添加了這個,mysql服務啟動會報錯。無法啟動。
我的mysql版本是5.7.19 按照上邊修改完my.ini配置后,以管理員的身份進么cmd,輸入net start mysql。服務啟動成功。
注:有一部分人可能說net start mysql命令不好使啊,那我可以告訴你,是因為你沒有安裝mysql服務。這樣的話你要啟動只能在mysql/bin目錄下找到mysqld進行啟動。
或者使用mysqld install進行安裝服務。之后就可以用net start了。
進入數據庫后:show variables like 'char%'; 編碼已經修改。
mysql> show variables like 'char%'; +--------------------------+-----------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:\software\mysql\share\charsets\ | +--------------------------+-----------------------------------+ 8 rows in set, 1 warning (0.00 sec)