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

我在远程主机用 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

阅读 2.3k
3 个回答
✓ 已被采纳

我在 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 服务之后就好了。

user表的host不改吗

这个是连接成功了. 是查询有问题.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题