我有一个用户' myuser
'和两个数据库。' db1
' 和 ' db2
'。
“ myuser
”已经拥有使用权db1
,我想db2
通过使用以下查询授予他使用“ ”的额外权限:
GRANT ALL ON db2.* TO 'myuser'@'localhost';
在我运行授权语句后,' myuser
'失去了与第一个数据库的连接' db1
'
恐怕我使用了错误的主机名。我应该使用 '%' 而不是 'localhost'。当我做:
select host from mysql.user where user = 'myuser';
现在我看到该用户的两条主机记录'%'
和“ ”localhost
当我运行 SHOW GRANT 语句时,我获得了不同主机的权限。“本地主机”和“%”。
mysql> SHOW GRANTS FOR 'myuser'@'localhost';
+----------------------------------------------------------------------+
| Grants for myuser@localhost |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost' |
| GRANT ALL PRIVILEGES ON `beta_version`.* TO 'myuser'@'localhost' |
+----------------------------------------------------------------------+
和
mysql> SHOW GRANTS FOR 'myuser'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for myuser@% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*6ASDFASDFASDF...'
| GRANT ALL PRIVILEGES ON `myuser`.* TO 'myuser'@'%'
+-----------------------------------------------------------------------------------------------------------+
发生了什么导致 ' myuser
' 在我的 PHP 脚本和 phpMyAdmin 中不起作用?