0
点赞
收藏
分享

微信扫一扫

关于MySQL的编码修改问题

芭芭蘑菇 2022-04-24 阅读 87
mysqlcentos

背景:

使用rpm安装的mysql
在网路上查询rpm安装的mysql的配置文件路径修改配置文件后不生效

问题:

在win10运行程序:插入数据到centos中的mysql中
数据中含有中文,在mysql查看到中文不显示且都变成“??”
排除编程过程中的编码错误
排查mysql

mysql>show variables like '%char%';
+--------------------------+----------------------------+
| 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                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.13, for Linux (x86_64) using  EditLine wrapper

Connection id:		1
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.6.13 MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	latin1
Conn.  characterset:	latin1
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			21 sec

定位问题:MySQL的编码问题

解决:

不能直接修改rpm安装下的配置文件,要先查看MySQL服务器读取的配置文件路径

#查看服务器读取的配置文件路径
[root@leader flume_status]#  mysql --help|grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

得知以下路径都为服务器读取的配置文件路径

/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/etc/my.cnf 
~/.my.cnf

将修改好的my.cnf 复制到以上任一路径

#my.cnf
[mysqld]
    character_set_server = utf8
    collation-server=utf8_general_ci
[client]
    default-character-set = utf8

重启MySQL

service mysql restart

再次进入mysql

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.13, for Linux (x86_64) using  EditLine wrapper

Connection id:		1
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.6.13 MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			8 sec

Threads: 1  Questions: 5  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.625
--------------

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

完成!

举报

相关推荐

0 条评论