一.登陸mysql先作 set names latinl; 而後在執行跟新或者執行語句mysql
前提是查好庫和表都是latinl的而後執行以上操做,不過是臨時的sql
二 在sql文件中指定 set names latinl;而後登陸mysql,經過以下命令執行。 mysql > source test.sql數據庫
三,.經過指定mysql命令的字符集參數實現--default-character-set=latinl;bash
mysql -uroot -p '123456' --default-character-set=latinl test < test.sql 導入sql直接輸入字符集 也就不亂碼了服務器
四。在配置文件裏設置客戶端及服務端參數app
[client] character-set-server = utf8 [mysql] character-set-server = utf8
不亂碼的思想,客戶端,服務器,庫,表,程序字符集統一socket
###如何更改生產mysql數據庫庫表的字符集編碼
對於已有的數據庫想修改字符集不能直接經過 「alter database character set」或 「alter table tablename character set」server
這兩個命令都沒有跟新已有記錄的字符集,而只是對新建立的表或者記錄生效。blog
已經有記錄的字符集的調整,必須先將數據導出,通過修改字符集後從新導入後才能夠,
總結: 例如目前是latinl >修改完utf-8
1.建庫及建表的語句導出,sed 批量修改成utf-8.
2.導出全部數據
3.修改mysql服務器和客戶端編碼爲utf-8
4.刪除原有的庫表及數據
5.導入新的建庫建表的語句
6.導入mysql的數據
[client]character-set-server = utf8[mysql]character-set-server = utf8[mysqld]#bind-address=127.0.0.1character-set-server = utf8datadir=/data/ops/app/mysql-5.6.23/standardsocket=/data/ops/app/mysql-5.6.23/standard/standard.sockuser=mysqlskip-grant-tables