MySQL创建一个只能远程访问指定数据库的账户,为什么无法连接数据库?

作者站长头像
站长
· 阅读数 14

我在远程主机用 root 用户是能访问数据库的。创建用户语句如下:

CREATE USER 'auser'@'%' IDENTIFIED BY 'auser';
GRANT ALL ON `MyDB`.* TO 'auser'@'%';
flush privileges;

这个 auser 账号却不能远程登录,请问这是什么原因导致的?PS. 用 Navicat 登录这个账户提示 2013 - Lost connection to MySQL server during query

回复
1个回答
avatar
test
2024-07-20

我在 Linux 中用 mysql 命令登录了这个创建的账户,发现提示:init_connect command failed

我在网上找到了答案,需要修改 /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'

重启 mysqld 服务之后就好了。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容