SQLyog v11.24查詢MySQL5.6.24中文亂碼的解決方案,sqlyogmysql5.6.24
本問題在網上尋找了半天,沒有找到一個解決的方法,最後我自己使用了一個小技巧解決了。
轉載請標明出處:
http://blog.csdn.net/ouyida3/article/details/46606689
本文出自:【ouyida3的部落格】
解決方案,執行命令:
SET character_set_results = gbK;
詳細可參考:
百度知道裡的回答
這個回答中,
SET character_set_client = gbK; SET character_set_results = gbK; SET character_set_connection = utf8;
或者
SET character_set_client = utf8;SET character_set_results = gb2312;SET character_set_connection = utf8;
都是可以嘗試的。但實際我只設定results為gbk即可。而且第二部分說的什麼設定Font,在我的新版本雷根本沒有這個設定。
這樣設定確實不亂碼了,但是重啟SQLyog又不生效了。
網上又說設定一下服務端的my.cnf設定檔裡的character-set-server參數或者default參數,我看我的伺服器本來就設定了gbk。
[aipaas@aipaas03 /app]$more my.cnf[mysqld_multi]mysqld = /app/mysql/bin/mysqld_safemysqladmin = /app/mysql/bin/mysqladminuser = mysqlpassword = aiLk@Aug[mysqld020]port = 3020socket = /tmp/mysql.sock01pid-file = /app/data_01/db-app.pidbasedir = /app/mysqldatadir = /app/data_01user = mysqlsymbolic-links=0character-set-server=gbkndbclusterndb-connectstring=130.51.23.24explicit_defaults_for_timestampoptimizer_switch=engine_condition_pushdown=off
而我通過主機上的mysql用戶端命令列,字元集是沒有問題的:
MySQL [portaldb]> SHOW VARIABLES LIKE 'char%' -> ;+--------------------------+--------------------------------------------------------------------+| 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 | /app/mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64/share/charsets/ |+--------------------------+--------------------------------------------------------------------+8 rows in set (0.00 sec)
這個說明,同樣的服務端,不同的用戶端是可能會產生不同的字元集,因為我覺得應該有在用戶端修改字元集的方法。
sqlyog的字元集(與上面命令列用戶端的明顯不同):
此時,公司的DBA叫我建表時也必須使用gbk。我覺得不靠譜。首先,為什麼強制了建表必須gbk?其次,我在命令列裡都沒有亂碼,只是在SQLyog裡亂碼,我認為不是建表字元集的問題。
SHOW CREATE TABLE sys_config;Table Create Table ---------- --------------sys_config CREATE TABLE `sys_config` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type_code` varchar(30) COLLATE utf8_bin DEFAULT NULL, `param_code` varchar(30) COLLATE utf8_bin DEFAULT NULL, `service_value` varchar(20) COLLATE utf8_bin DEFAULT NULL, `service_option` varchar(255) COLLATE utf8_bin DEFAULT NULL, `descb` varchar(255) COLLATE utf8_bin DEFAULT NULL, `state` varchar(2) COLLATE utf8_bin DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
我想了一下,只要在登入資料庫的時候,預設先執行一下這條命令就可以了:
問題完美解決。
我的參考連結:
- 關於MySQL如何修改character_set_client的編碼問題
- http://blog.csdn.net/ACMAIN_CHM/article/details/4174186
- http://www.itpub.net/thread-1806655-1-1.html
2015.6.23