当用非root账户登录MySQL时,执行一条语句,出现init_connect command failed错误。
原因分析:
一、init_connect的作用
init_connect通常用于:当一个连接进来时,做一些操作,比如设置autocommit为0,比如记录当前连接的ip来源和用户等信息到一个新表里,当做登陆日志信息
二、使用init_connect的注意点
1 只有超级账户才可以设置(super_priv权限)
2 超级账户无视init_connect设置(即init_connect的设置对来自超级账户的连接不生效)
出错原因是因为init_connect参数设置错误!
解决办法:
编辑my.cnf
vim /etc/my.cnf
init_connect=‘SET collation_connection = utf8_unicode_ci’
init_connect=‘SET NAMES utf8’
发现单引号有问题,改为英文单引号,保存,重启数据库服务,问题解决!
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'