我已经在mysql 5.1中创build了用户,并赋予了下面给出的ALL权限,
mysql> show GRANTS FOR test; +-------------------------------------------------------------+ | Grants for test@% | +-------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION | | GRANT ALL PRIVILEGES ON `tt`.* TO 'test'@'%' | +-------------------------------------------------------------+ 2 rows in set (0.00 sec)
但是show数据库没有显示mysql上的数据库。 它只显示如下。 如何为其他数据库表提供特权以及用户“testing”?
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+
错误,当我试图使用MySQL数据库作为用户testing:
mysql> use mysql; ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
在mysql.user表中,你可以为不同的用户指定不同的权限。如果你使用的是查询浏览器,你可以通过工具 – > mysqlpipe理员,然后去用户和创build具有权限的新用户或更改其权限。
你改变特权后,不要忘记运行“FLUSH PRIVILEGES”,否则你改变不会影响。
您没有以用户test @%的身份login,因为您有匿名用户帐户“@'localhost”,它首先匹配。 或者删除''@ localhost'或创build'test'@'localhost'
你也可以运行mysql_secure_installation ,这将为你处理很多这个问题。