im007boy/knowledge

mysql

Opened this issue · 0 comments

如果你不能弄明白你为什么得到Access denied,从user表中删除所有Host包含通配符值的行(包含“%”或“_”的条目)。一个很普遍的错误是用Host='%'和User='some_user'插入一个新行,认为这将允许你指定localhost从同一台机器进行连接。它不工作的原因是 默认权限包括一个有Host='localhost'和User=''的行,因为那个行的Host值'localhost'比'%'更具体,当从localhost连接时,它用于指向新行!正确的步骤是插入Host='localhost'和User='some_user'的第2个行,或删除Host='localhost'和User=''行。删除条目后,记住用FLUSH PRIVILEGES语句重载授权表。

https://dev.mysql.com/doc/refman/5.1/zh/database-administration.html