通过linux远程连接mysql,查询结果中文为乱码小结

首先本地办公环境为windows使用的是navicat连接的mysql

navicat连接mysql时查询结果正常

查看编码方式:

mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8

说明服务器端设置正常

然后我又用linux远程连接mysql,查询结果中文乱码

再次查看编码方式:

mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | latin1                         |
| character_set_connection | latin1                         |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | latin1                         |
| character_set_server     | utf8                           |
| character_set_system     | utf8

卧槽,部分编码方式怎么变成latin1了,迅速检查了下mysql服务器端配置文件编码配置,全都设置了utf8,没有问题

重启一下mysql服务器端,linux远程连接查询仍然为中文乱码

看来不是服务器问题,查询客户端版本

#rpm -qa mysql
mysql-5.1.73-7.el6.x86_64

服务器端版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.25    |
+-----------+
1 row in set

看来是客户端版本过老了

解决方法:

1、每次查询前设置查询结果集编码为utf8 即set character_set_results=utf8

2、更新客户端版本

时间: 2024-11-17 13:09:52

通过linux远程连接mysql,查询结果中文为乱码小结的相关文章

java使用c3p0连接mysql,写中文数据乱码的问题

此文说的乱码,是指所有中文的字符都变成了?. 首先,网上普遍搜索到的解决方案都是告诉你要在数据库连接字符串里面增加编码的定义,完整的连接字符串如下: url="jdbc:mysql://127.0.0.1:3306/anydb?useUnicode=true&characterEncoding=UTF-8" 需要注意的是:这段字符串通常是保存在一段xml结构的配置文件中,比如环境变量文件context.xml中,更完整的配置内容如下: <?xml version=&quo

Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样

百度随时就能搜,你就懒得搜下.http://tieba.baidu.com/p/671327617 Ssh tunnel通常能实现3种功能1) 加密网络传输2) 绕过防火墙3) 让位于广域网的机器连接到局域网内的机器 --------------------------------------------------------------------------------- Delphi能通过SSH登录Linux,连接MYSQL取数么? SSH是远程连接Linux的其中一种通道方式.目前Li

远程连接mysql root账号报错:2003-can&#39;t connect to MYSQL serve

1.远程连接Linux系统,登录数据库:mysql -uroot -p(密码) 2.修改root账号的设置: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 其中'root'为mysql用户名,'123456'为root账户密码,修改其他用户修改对应的参数即可. 3.执行 flush privileges;命令立即生效 4. 使用exit命令退出MySQL 然后打开vim  /

笔记:PHP查询mysql数据后中文字符乱码

新建表Clubs CREATE TABLE `Clubs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; id name 1 程序员2 架构师3 产品经

Navicat 远程连接 MySQL

Navicat 远程连接 MySQL 相信大家都有在远程服务器上进行开发吧,其中 MySQL 的使用率应该也会挺高,如果使用 Navicat 等可视化工具来操作远程数据库不失为一种很好的选择,避免了在命令行写 SQL 语句的操作.下面简单介绍一下 Navicat 连接远程数据库的操作. 1 首先我们需要更改 3306端口,查看3306 端口是否对外开放,MySQL 默认情况下是不开放对外访问功能的.语句如下: netstat -an | grep 3306 如果查询结果如下,需要我们更改 MyS

如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题

如何解决远程连接mysql出现Can't connect to MySQL server on (111 "Connection refused")的问题 开放Mysql的远程连接 在服务器上登录mysql,然后执行以下的命令. 登录mysql: /usr/local/mysql-5.6/bin/mysql -u root -p 执行赋权的命令: MySQL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '1234

解决远程连接mysql错误1130

Mysql远程连接Mysql服务器的数据库,错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx  is not allowed to connect to this MySQL server  猜想是无法给远程连接的用户权限问题. 这样子操作mysql库,即可解决.  在本机登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称

Navicat远程连接MySQL

在使用Navicat远程连接MySQL创建表的时候,爆出错误1044 百度未果 解决办法: 在Navicat登录的时候,采用SSH方式登录

navcat无法远程连接mysql数据库解决办法

navcat无法远程连接mysql数据库,一般都是因为本地ip没有访问权限,服务器上执行下面指令即可解决 mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'mysql数据库用户名'@'本地ip' IDENTIFIED BY 'mysql数据库密码' WITH GRANT OPTION; flush privileges;