小編給大家分享一下MySQL設(shè)置中文解決亂碼的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站專注于網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。
中文亂碼現(xiàn)象演示:
Mysqldump導(dǎo)入亂碼
[root@ testserv mytest]#/usr/local/mysql/bin/mysqldump testdb t_app_control -pxxxxxx > bc_tpc.sql[root@testserv mytest]#/usr/local/mysql/bin/mysql -uroot -pxxxxxx mytest < bc_tpc.sqlmysql> selectFGame,FArea,FGroup from t_app_controllimit 5;+--------+----------------------+-------------+| FGame | FArea | FGroup |+--------+----------------------+-------------+| e | | WS--MXD || e | 1?2? || e | 1?3 || e | 1?4?? || e | 1?5С |+--------+----------------------+-------------+
Loaddata導(dǎo)入亂碼
mysql> load data infile'/tmp/gongzuoshi.ttt' into table chartest;mysql> select * from chartestlimit 5;+----------+----------+-------------+--------------+| game_eng | game_chs |game_center | game_chs_new |+----------+----------+-------------+--------------+| game_eng | game_chs |game_center | game_chs_new || 1000y | ? | | || 2c | ? | | || 8m | | | || 9yin | | | |+----------+----------+-------------+--------------+5 rows in set (0.00 sec)
程序及MySQL字符集配置情況
出現(xiàn)亂碼情況,首先確認(rèn)寫入程序使用的字符集,MySQL使用的字符集
MySQL使用的字符集情況
通過SHOW VARIABLES LIKE ‘character%’,在上面例子中通過語句獲得字符集設(shè)置情況如下:
mysql> show variables like'character%';+--------------------------+----------------------------------------+| Variable_name | Value |+--------------------------+----------------------------------------+| character_set_client | gbk || character_set_connection |gbk || character_set_database | gbk || character_set_filesystem |binary || character_set_results | gbk || character_set_server |gbk || character_set_system | utf8 || character_sets_dir | /usr/local/mysql/share/mysql/charsets/|+--------------------------+----------------------------------------+
Mysqldump導(dǎo)入亂碼原因 :
1、首先確認(rèn)mysqldump –help或查看備份文件頭部信息確認(rèn)默認(rèn)字符集
在上例中通過mysqldump –help查看
character-sets-dir (No default value)
通過備份文件查看
-- MySQL dump 10.13 Distrib 5.1.52, for unknown-linux-gnu(x86_64)---- Host: localhost Database:backupcenter-- -------------------------------------------------------- Server version 5.1.52-log/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101SET NAMES utf8 */;
2、通過 mysql –help 確認(rèn)導(dǎo)入字符集
default-character-set gbk
導(dǎo)入的兩種情況如下
1)不修改備份文件,導(dǎo)入由于sql文件中存在set names utf8,則導(dǎo)入后字符集使用的依然是utf8,在系統(tǒng)默認(rèn)顯示字符集為gbk的情況下,則顯示為亂碼,此時則需要使用set names utf8 才能正常顯示字符
2)修改備份文件,導(dǎo)入前將sql中的set names utf8 去除,在mysql默認(rèn)字符集為gbk的情況下導(dǎo)入后字符集為gbk,此時mysql顯示字符集為gbk,兩者一致,則顯示正常
總結(jié):
1、編譯安裝MySQL的時候指定DEFAULT_CHARSET=[charset] 與寫入程序保持一致
2、my.cnf中字符集設(shè)置與寫入程序保持一致
3、導(dǎo)入數(shù)據(jù)時,將導(dǎo)入程序與數(shù)據(jù)庫的鏈接配置為與數(shù)據(jù)庫字符集一致
小伙伴們還可以試試建庫、建表、連接數(shù)據(jù)庫的時候,統(tǒng)一使用一個碼表,也不會出現(xiàn)亂碼情況呢~
看完了這篇文章,相信你對mysql設(shè)置中文解決亂碼的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!