我有一个安装脚本,它设置了一个 MySQL 用户 + 数据库 + 一些表。它在 mysql 5.0 中运行良好,但我们最近升级到了 mysql 5.5 附带的 Ubuntu 12.04。但是在 mysql 5.5 中我遇到了错误。
该问题似乎与添加用户有关。我使用这样的一行来创建一个 root 用户,稍后用于登录并设置其余的东西:
INSERT INTO mysql.user VALUES('%','myrootuser','','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','','','','',0,0,0,0,'','');
flush privileges;
命令成功。但是,当使用这个新的“myrootuser”登录时,用户似乎没有足够的权限:
jeroen@jeroen-ubuntu:~$ mysql -u myrootuser -e 'select * from mysql.user;'
ERROR 1142 (42000) at line 1: SELECT command denied to user ''@'localhost' for table 'user'
我还注意到我可以使用不存在的用户名登录,这可能会混淆真正的问题:
ubuntu@myserver:~$ mysql -u thisuserdoesnotexist
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.5.22-0ubuntu1 (Ubuntu)
mysql>
5.5 中的 MySQL 身份验证是否有一些我不知道的变化?