您好,登錄后才能下訂單哦!
小編給大家分享一下mysql設置中文解決亂碼的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
中文亂碼現象演示:
Mysqldump導入亂碼
[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導入亂碼
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字符集配置情況
出現亂碼情況,首先確認寫入程序使用的字符集,MySQL使用的字符集
MySQL使用的字符集情況
通過SHOW VARIABLES LIKE ‘character%’,在上面例子中通過語句獲得字符集設置情況如下:
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導入亂碼原因 :
1、首先確認mysqldump –help或查看備份文件頭部信息確認默認字符集
在上例中通過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 確認導入字符集
default-character-set gbk
導入的兩種情況如下
1)不修改備份文件,導入由于sql文件中存在set names utf8,則導入后字符集使用的依然是utf8,在系統默認顯示字符集為gbk的情況下,則顯示為亂碼,此時則需要使用set names utf8 才能正常顯示字符
2)修改備份文件,導入前將sql中的set names utf8 去除,在mysql默認字符集為gbk的情況下導入后字符集為gbk,此時mysql顯示字符集為gbk,兩者一致,則顯示正常
總結:
1、編譯安裝MySQL的時候指定DEFAULT_CHARSET=[charset] 與寫入程序保持一致
2、my.cnf中字符集設置與寫入程序保持一致
3、導入數據時,將導入程序與數據庫的鏈接配置為與數據庫字符集一致
小伙伴們還可以試試建庫、建表、連接數據庫的時候,統一使用一個碼表,也不會出現亂碼情況呢~
看完了這篇文章,相信你對mysql設置中文解決亂碼的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。