开发机链接公司数据库做查询的时候,发现查询结果中有中文的地方都变成了?????,为了解决这个问题,去网上随便搜个了贴在来看,结果发现自己的开发机有一系列奇葩的问题。。。

1、首先输入 mysql -hX.X.X.X -Pxxxx -uname -pXXXXXXX连接了公司的数据库,然后输入 show variables like 'character_set%';这条语句是用来查看字符集编码格式,发现我的编码格式中有好多都不是utf8,这个就是问题的根源。
2、接下来就是解决这个问题,其实这个问题很简单,只需要再mysql命令行中输入几条sql命令就可以:

set character_set_database=utf8;
 set character_set_server=utf8;
 set character_set_client=utf8;
 set character_set_connection=utf8;
 set character_set_results=utf8;


这几条命令用完之后再重新查询一遍,中文就已经可以显示了。但是如果以后重启了mysql服务,那么还需要重新用这几个命令,否则还是变成了默认的字符集编码格式。于是我决定再/etc/my.cnf中做一个统一的配置。具体步骤:

vi /etc/my.cnf

在[mysqld]中添加一行character_set_server = utf8
在[client]中添加一行default-character-set=utf8
(如果发现配置文件中没有mysqld或者没有client,可以自己加一个)
添加之后只要重启mysql服务就解决了

service mysqld stop
	service mysqld start

3、但是到了重启mysql服务这一步时,我的开发机中的一大堆问题

首先是service mysqld stop命令报错,提示没有service服务,于是用yum list installed|grep mysql-server命令查看我的环境是不是缺少文件,结果yum也报错。。

mysql查询显示null mysql查询显示问号_mysql

那么先解决yum的问题。

yum报错原因:根据报错信息提示,是yum的python版本对应不上目前python环境的版本导致的。

也就是说 有人升级或者卸载了python。没错,在之前我确实嫌弃自己的python版本太低,安装了更高的版本。

解决办法:

查看Python版本

whereis python

发现自己果然有py2.3 和py2.7 两个版本
查找python文件

which yum

输出为:/usr/bin/yum

vi /usr/bin/yum

将首行的#!/usr/bin/python更改为旧的python版本#!/usr/bin/python2.3
wq保存退出
此时重新执行yum list installed|grep mysql-server

执行结果发现我的环境中没有mysql-server.x86_64

mysql查询显示null mysql查询显示问号_mysql_02


没有这一条,那么我们自己安装

yum install mysql-server

安装这个又报错。。。
查看报错信息是我没有/usr/tmp文件,那么自己去创建一个吧,创建之后重新执行yum install mysql-server,安装成功。试验一下

service mysqld start

这次mysql启动成功了,那么现在重启mysql(前提是已经配置好了my.cnf)

service mysqld stop
service mysqld start

这时重新链接数据库

mysql -hX.X.X.X -Pxxxx -uname -pXXXXXXX

再mysql命令行输入

show variables like 'character_set%';

发现字符集都变成了utf8
查询一个表检查一下

select。。。。。。
解决!!!