zoukankan      html  css  js  c++  java
  • SQLyog v11.24查询MySQL5.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_safe
    mysqladmin = /app/mysql/bin/mysqladmin
    user = mysql
    password = aiLk@Aug
    
    [mysqld020]
    port = 3020
    socket = /tmp/mysql.sock01
    pid-file = /app/data_01/db-app.pid
    basedir = /app/mysql
    datadir = /app/data_01
    user = mysql
    symbolic-links=0
    character-set-server=gbk
    ndbcluster
    ndb-connectstring=130.51.23.24
    explicit_defaults_for_timestamp
    optimizer_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   

    我想了一下。仅仅要在登录数据库的时候,默认先运行一下这条命令就能够了:
    这里写图片描写叙述

    问题完美解决。

    我的參考链接:

    2015.6.23

  • 相关阅读:
    [node] 如何安装node.js环境(ubuntu16.04)
    [go] 如何安装go环境(ubuntu16.04)
    github如何从提交代码到远程
    angular6 表单验证
    angular6 使用tooltip
    angular6 导出Excel文件
    angular6 页面加载数据时的loading提示
    angular6 使用daterangepicker的注意事项
    angular6 监听url查询参数变化刷新页面
    python使用gevent实现协程
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5240782.html
Copyright © 2011-2022 走看看