mysql在linux下亂碼問題

來源:互聯網
上載者:User

標籤:

一、操作

mysql預設字元集是latin1,但是我們大部分程式使用的字元集是utf8,我們就需要修改mysql的字元集了。

1)查看預設編碼

showvariables like ‘character%‘;

+--------------------------+----------------------------+

|Variable_name | Value |

+--------------------------+----------------------------+

|character_set_client | latin1 |

|character_set_connection | latin1 |

|character_set_database | latin1 |

|character_set_filesystem | binary |

|character_set_results | latin1 |

|character_set_server | latin1 |

|character_set_system | utf8 |

|character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

Mysql下預設的編碼是latin1

2)查看預設排序方式

showvariables like ‘collation_%‘;

+----------------------+-----------------+

|Variable_name        | Value          |

+----------------------+-----------------+

|collation_connection | latin1_swedish_ci |

|collation_database   | latin1_swedish_ci |

|collation_server     | latin1_swedish_ci |

+----------------------+-----------------+

3)修改預設字元集

修改檔案/etc/my.cnf內容

在[client]下添加如下語句

default-character-set=utf8  

在[mysqld]下添加

default-character-set=utf8

init_connect=‘SET NAMES utf8‘    ##設定串連mysql是使用UTF8編碼

修改好後,重啟mysql服務即可

4)另外一種修改字元編碼方法

登入mysql後,輸入如下內容

mysql>SET character_set_client = utf8 ;

mysql>SET character_set_connection = utf8 ;

mysql>SET character_set_database = utf8 ;

mysql>SET character_set_results = utf8 ;

mysql>SET character_set_server = utf8 ;

 

mysql>SET collation_connection = utf8 ;

mysql>SET collation_database = utf8 ;

mysql>SET collation_server = utf8 ;

5)重新查看

showvariables like ‘character%‘;

+--------------------------+---------------------------------+

|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       |/usr/share/mysql/charsets/|

+--------------------------+---------------------------------+

showvariables like ‘collation_%‘;

+----------------------+-----------------+

|Variable_name        | Value          |

+----------------------+-----------------+

|collation_connection | utf8_general_ci |

|collation_database   | utf8_general_ci |

|collation_server     | utf8_general_ci |

+----------------------+-----------------+

6)使用JDBC串連mysql時需要將連接字串改為如下方式:

jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=UTF-8

已utf8的方式串連

二、概念

character-set-server/default-character-set:伺服器字元集,預設情況下所採用的。

character-set-database:資料庫字元集。

character-set-table:資料庫表字元集。

character-set-client:用戶端的字元集。用戶端預設字元集。當用戶端向伺服器發送請求時,請求以該字元集進行編碼。

character-set-results:結果字元集。伺服器向用戶端返回結果或者資訊時,結果以該字元集進行編碼。

統一設定字元集編碼使用語句:set names utf8

三、匯入匯出防止亂碼

1.匯出資料庫使用命令(在cmd下輸入)

mysqldump -u使用者名稱 -p密碼 -h伺服器位址資料庫名稱 --default-character-set=utf8 --hex-blob >匯出資料庫.sql

--default-character-set=utf8代表使用urf8編碼匯出資料

--hex-blob代表以16進位匯出資料庫

2.匯入資料庫使用命令(在cmd下輸入)

mysql -u使用者名稱 -p密碼 -h伺服器位址資料庫名稱 --default-character-set=utf8--hex-blob  <匯出資料庫.sql

除了使用上面的命令匯入資料庫外,還可以登入mysql,使用source命令匯入

mysql> source匯出資料庫.sql

註:blob欄位存放的是位元據,故其沒有字元集編碼,在window和linux使用以上方式還是會有亂碼的問題,故建議將blob類型修改為text類型,才不會出現亂碼。blob類型資料往text類型轉換,自己寫一個簡單的代碼,從blob讀出資料以字串的形式存到text欄位即可。

 


 

mysql在linux下亂碼問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.