您的当前位置:首页SQLyog v11.24查询MySQL5.6.24中文乱码的解决方法

SQLyog v11.24查询MySQL5.6.24中文乱码的解决方法

2023-11-09 来源:六九路网
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

    SQLyog v11.24查询MySQL5.6.24中文乱码的解决方法

    标签:sqlyog   mysql   乱码   

    小编还为您整理了以下内容,可能对您也有帮助:

    关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)



    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。

    首先:

    用show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置

    如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8,

    修改方法如下:

    用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开, 然后Ctrl+F搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的。

    然后保存,重启mysql服务、、进去继续用show variables like “%colla%”;show varables like “%char%”;着两条语句查询一下字符集。 如图:



    到此就配置完成了。

    注意:

    如果以前建有数据库没有删除的 请用 show database 数据库名;和 show create table 表名;查看一下数据库和表的字符集是否为UTF8 , 因为修改my.ini文件,它不能修改原来数据库的的字符集。在命令行下面可以用

    alter database 数据库名 character set “字符集”; 命令来修改数据库字符集

    还有一点要注意的是,修改为UTF8以后,在命令行下面中文是乱码的,只输出到页面或控制台是正常的,这个问题我也上网查了一下,貌似命令行下面不支持UTF8,我也不太清楚。

    当修改以后,在命令行下面如果要插入中文,可以在插入语句之前执行,set names gbk2312;就可以插入中文了,但是不能插入繁体和一些特殊符号。

    关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)



    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。

    首先:

    用show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置

    如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8,

    修改方法如下:

    用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开, 然后Ctrl+F搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的。

    然后保存,重启mysql服务、、进去继续用show variables like “%colla%”;show varables like “%char%”;着两条语句查询一下字符集。 如图:



    到此就配置完成了。

    注意:

    如果以前建有数据库没有删除的 请用 show database 数据库名;和 show create table 表名;查看一下数据库和表的字符集是否为UTF8 , 因为修改my.ini文件,它不能修改原来数据库的的字符集。在命令行下面可以用

    alter database 数据库名 character set “字符集”; 命令来修改数据库字符集

    还有一点要注意的是,修改为UTF8以后,在命令行下面中文是乱码的,只输出到页面或控制台是正常的,这个问题我也上网查了一下,貌似命令行下面不支持UTF8,我也不太清楚。

    当修改以后,在命令行下面如果要插入中文,可以在插入语句之前执行,set names gbk2312;就可以插入中文了,但是不能插入繁体和一些特殊符号。

    sql语句导入mysql数据库乱码怎么解决13

    sql语句导入mysql数据库乱码解决步骤如下:

    1、首先要保证txt文件是用UTF8格式保存的,这里可以打开查看一下内容确认格式。

    2、接着使用Navicat Premium连接上数据库查看数据表是UTF8格式的。

    3、接着 查看数据库的格式,确保是UTF8。 

    4、继续查看 数据库中表的列也是UTF8格式。

    5、查询表数据,先是空表没有一条数据。

    6、把准备好的txt文件,导入到数据库,查看数据是否有乱码。

    7、重新查询数据库查看刚刚导入进去的数据,没有乱码。

    sql语句导入mysql数据库乱码怎么解决13

    sql语句导入mysql数据库乱码解决步骤如下:

    1、首先要保证txt文件是用UTF8格式保存的,这里可以打开查看一下内容确认格式。

    2、接着使用Navicat Premium连接上数据库查看数据表是UTF8格式的。

    3、接着 查看数据库的格式,确保是UTF8。 

    4、继续查看 数据库中表的列也是UTF8格式。

    5、查询表数据,先是空表没有一条数据。

    6、把准备好的txt文件,导入到数据库,查看数据是否有乱码。

    7、重新查询数据库查看刚刚导入进去的数据,没有乱码。

    用sqlyog链接mysql数据库,中文老是乱码,怎么解决,我是用utf8编码的。求解

    安装数据库时有选择编码,创建表时也有选择编码,字段中也有选择编码。如果写入的数据不是utf8的就会导致乱码

    SQLyog查询MYSQL中的表,表中的中文显示乱码

    你是用网页插入的数据吧?

    可能是你写入时候的编码和数据库编码不符

    你可以在查询之前先

    SET character_set_results = utf8;

    试试。

    网页查询之前也先设定一下编码

    显示全文