天天看點

mysql資料庫亂碼如何解決?

作者:黑馬程式員

導讀:

作為一個資料庫的初學者,遇到資料庫亂碼問題,是一個比較頭疼的問題,下面根據我的使用經驗,給大家分享幾種解決mysql資料庫亂碼問題的方式,希望對大家有幫助。

一、我們需要将預設的字元集更改為utf-8來解決資料庫導入資料的亂碼問題:

我們需要先檢視資料庫預設的字元集是什麼:

show variables like 'character_set_%'           

檢視所有的預設字元集

mysql> show variables like 'character_set_%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | latin1                                                  |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                  |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)           

其中character_set_database和character_set_server的字元集mysql預設為latin1.

我們需要将其更改為utf-8的字元需要用到下面兩行代碼:

set character_set_database=utf8;

set character_set_server=utf8;           

然後我們做字元集查詢

show variables like 'character_set_%'           

得到:

mysql> show variables like 'character_set_%';
+--------------------------+---------------------------------------------------------+
| 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       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)           

之後建立的所有的資料庫的字元集都預設為utf-8的字元集 .這個時候我們再去做字元集的插入時就可以看到漢字被成功插入不會再出現亂碼問題.

二、更改資料庫和表的字元集的方法

alter database 資料庫名 charset utf8;

alter table 資料表名  convert to character set utf8;           

三、導入資料庫的方法

Windows系統

source d:/table.sql(*.sql檔案所處的盤位置)           

linux系統

source /home/hhh/桌面/tables.sql;           

總結:

上面給大家介紹了三種解決mysql亂碼的方法,因為我們将來開發的系統,基本上都會涉及到非英文的資料,是以建議大家使用第一種方式,把資料庫伺服器的預設編碼方式改成utf8,這樣以後不管什麼時候使用,都不會發生亂碼問題!

繼續閱讀