首頁技術(shù)文章正文

Mysql數(shù)據(jù)庫亂碼解決方案

更新時間:2022-11-16 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  導(dǎo)讀:

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

  一、我們需要將默認(rèn)的字符集更改為utf-8來解決數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)的亂碼問題:

  我們需要先查看數(shù)據(jù)庫默認(rèn)的字符集是什么:

show variables like 'character_set_%'

  查看所有的默認(rèn)字符集

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默認(rèn)為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)

  之后創(chuàng)建的所有的數(shù)據(jù)庫的字符集都默認(rèn)為utf-8的字符集 .這個時候我們再去做字符集的插入時就可以看到漢字被成功插入不會再出現(xiàn)亂碼問題。

  二、更改數(shù)據(jù)庫和表的字符集的方法

alter database 數(shù)據(jù)庫名 charset utf8;

alter table 數(shù)據(jù)表名  convert to character set utf8;

  三、導(dǎo)入數(shù)據(jù)庫的方法

  Windows系統(tǒng)

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

  linux系統(tǒng)

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

  總結(jié):

   上面給大家介紹了三種解決mysql亂碼的方法,因為我們將來開發(fā)的系統(tǒng),基本上都會涉及到非英文的數(shù)據(jù),因此建議大家使用第一種方式,把數(shù)據(jù)庫服務(wù)器的默認(rèn)編碼方式改成utf8,這樣以后不管什么時候使用,都不會發(fā)生亂碼問題!

分享到:
在線咨詢 我要報名
和我們在線交談!