mysql亂碼問題

一.登陸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

相關文章
相關標籤/搜索