1. 程式人生 > >MySQL亂碼問題解決步驟詳解

MySQL亂碼問題解決步驟詳解

在工作學習中遇到出現中文亂碼是一件非常讓人頭疼的一件事,我也深受其害,在這裡我整理了一下在使用mysql時候出現亂碼的解決步驟,大家共同學習,共同進步。

一、確認各環節的字符集

首先來確定一下各個環節的字符集是否一致,字符集不一致導致的亂碼問題最為常見。
1. 確認當前Xshell連線linux的繪畫所使用的字符集型別
在這裡插入圖片描述
2. 確認當前linux系統的字符集

 # locale:檢視當前系統的字符集
   # locale -a:檢視系統全部可用的字符集
   # locale -a | grep zh_CN:檢視中文型別的字符集
   和字符集相關的變數:LANG
   # echo $LANG

   臨時修改linux字符集
   # export LANG=zh_CN.utf8

   永久修改linux字符集
   (1) echo "export LANG=zh_CN.utf8" > ~/.bashrc
   (2) CentOS7修改檔案 /etc/locale.conf
    CentOS6修改檔案 /etc/sysconfig/i18n

3. 確認和mysql相關的字符集

mysql> status    <<<檢視各種字符集資訊

    Server characterset:    utf8
    Db characterset:    utf8
    Client characterset:    utf8
    Conn. characterset: utf8
    #檢視建立表tb2的時候所使用的字符集
   mysql> show create table tb2\G
    #檢視建立庫db2的時候所使用的字符集
   mysql> show create database db2\G

   #修改mysql server字符集型別
    在my.cnf中的mysqld段新增 character-set-server = utf8

   修改一個表的字符集
    ALTER TABLE tb1 CONVERT TO CHARACTER SET ;

二、修改一個數據庫的字符集

修改資料庫的字符集我一般是先將這個資料庫中的內容備份出來,然後新建一個數據庫,顯得資料庫使用期望使用的字符集型別,最後將備份資料匯入到這個新的資料庫中。
1. 備份原有資料

# mysqldump --default-character-set=gbk -uroot -p123 -B db4 --tables tb4>/home/old.sql
    【可以用vim檢視其中是否有亂碼】

2. 修改備份檔案中的資料字符集型別

# iconv -t utf-8 -f gbk -c /home/old.sql >/home/new.sql
    【可以用vim檢視其中是否有亂碼】

3. 用新的字符集仙劍一個數據庫,並將備份檔案匯入進去

mysql> create database db5 character set utf8;
# mysql -uroot -p123 db5</home/new.sql

------做運維之前很矯情的小年輕-----