真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決linux下mysql亂碼的問題

小編給大家分享一下如何解決linux下MySQL亂碼的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比靖江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式靖江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋靖江地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

項(xiàng)目進(jìn)行到和服務(wù)器交互,通過post訪問服務(wù)器端jsp,jsp訪問服務(wù)器端mysql數(shù)據(jù)庫,最終返回到客戶端的中文出現(xiàn)亂碼問題。

在整個流程中,出現(xiàn)錯誤的原因可能是三個:post未設(shè)置編碼或者編碼不相符合,jdbc出現(xiàn)問題,linux下mysql初始碼制問題。

在經(jīng)過繁瑣的排查后,最終確定問題為mysql編碼問題。下文介紹如何解決linux下mysql中文亂碼問題。

首先進(jìn)入mysql命令行模式,鍵入mysql -uroot -p 即可進(jìn)入。隨后鍵入 SHOW VARIABLES LIKE 'character_set_%'; 

若顯示內(nèi)容類似這樣:

+--------------------------+----------------------------------------------+
| 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    | /alidata/server/mysql-5.1.73/share/charsets/ |

則已修改正確,而mysql默認(rèn)初始設(shè)置的都是latin1而非utf8。

一種解決方法是更改表格的屬性設(shè)置為utf8或者在創(chuàng)建表格的時候在最后加上DEFAULT CHARSET=utf8。設(shè)置表格為utf8碼。這樣的方法有可能失效。

最根本的解決方法是打開mysql配置文件修改。linux下mysql配置文件名為my.cnf,目錄為/etc/my.cnf,打開后按照以下操作:

--在 [mysqld] 標(biāo)簽下加上三行
default-character-set = utf8
character_set_server = utf8
lower_case_table_names = 1 //表名不區(qū)分大小寫(此與編碼無關(guān))
--在 [mysql] 標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysql.server]標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysqld_safe]標(biāo)簽下加上一行
default-character-set = utf8
--在 [client]標(biāo)簽下加上一行
default-character-set = utf8

上述標(biāo)簽若未能全部找到也沒關(guān)系。再次打開mysql命令行,執(zhí)行SHOW VARIABLES LIKE 'character_set_%';后若仍存在latin1,則在mysql命令行下執(zhí)行以下命令:

  •     set character_set_client = utf8;

  •     set character_set_server = utf8;

  •     set character_set_connection = utf8;

  •     set character_set_database = utf8;

  •     set character_set_results = utf8;

  •     set collation_connection = utf8_general_ci;

  •     set collation_database = utf8_general_ci;

  •     set collation_server = utf8_general_ci;

執(zhí)行后再執(zhí)行上述show 命令可得到目標(biāo)結(jié)果。

設(shè)置完成后需要重新啟動mysql,重啟命令 /etc/init.d/mysqld restart  。

原數(shù)據(jù)表需要刪除后重建。

最終完成,大功告成。

小結(jié)

1、修改/etc/my.cnf文件,增加以下幾行:

[client]
# pipe=
# socket=MYSQL
port=3306
default-character-set=utf8
[mysql]
no-beep
# default-character-set=
default-character-set=utf8
# SERVER SECTION
# ----------------------------------------------------------------------
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
# server_type=3
[mysqld]
character_set_server=utf8

2、重啟mysql服務(wù):

service mysql stop;
service mysql status;
service mysql start;
或者 service mysql restart;

以上是“如何解決linux下mysql亂碼的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前名稱:如何解決linux下mysql亂碼的問題
文章源于:http://weahome.cn/article/pidjjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部