0
点赞
收藏
分享

微信扫一扫

mysql配置字符集无效

概要:

配置了utf8 ,但是登录后查询仍然是latin1

配置文件:

cat mysql/conf/my.cnf 
[mysqld]
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock 
log-error=/var/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid

init-connect='SET NAMES utf8' 
collation-server=utf8_general_ci
character-set-server=utf8


[mysql] 
default-character-set=utf8mb4 

[client]
default-character-set=utf8mb4

[mysql.server]
default-character-set = utf8

[mysqld_safe]
default-character-set = utf8mb4

查询结果:

mysql配置字符集无效_字符集

原因:文件夹的权限

运行mysqld的是msyql用户 ,配置文件拥有者是root,对mysql用户可读可执行。但是配置文件的父目录的权限,对mysql用户无权限。chmod 751 /etc/mysql 即可。

为什么查询结果中,client那些字符集生效呢? 因为我是在本机上用mysql -u-p 命令登录的 ,这条shell命令的执行者是root ,而不是上文的mysql用户。

mysql配置字符集无效_配置文件_02

结语:

为什么用mysql用户启动 mysqld 时,配置文件有权限还不够?还需要上级目录有执行权限呢 ?希望读者留言指点一下 !


举报

相关推荐

0 条评论