SQLyog v11.24查詢MySQL5.6.24中文亂碼的解決方案,sqlyogmysql5.6.24

來源:互聯網
上載者:User

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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.