MysqL> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
MysqL> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
MysqL> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
MysqL> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
尽管正如Pascal和其他人所指出的那样,让具有这种访问权限的用户可以访问任何IP并不是一个好主意。如果需要管理用户,请使用root,并将其保留在localhost上。对于任何其他操作,请准确指定所需的特权,并按照Pascal的建议限制用户的可访问性。
编辑:
从MysqL常见问题解答:
如果无法弄清为什么拒绝访问,请从用户表中删除所有具有包含通配符的主机值的条目(包含“%”或“ _”字符的条目)。一个非常常见的错误是使用Host =’%’和User =’some_user’插入一个新条目,认为这允许您指定本地主机从同一台计算机进行连接。这样做不起作用的原因是,默认特权包括Host =’localhost’和User =’‘的条目。由于该条目的主机值’localhost’比’%’更具体,因此从localhost连接时,它优先于新条目使用!正确的过程是使用Host =’localhost’和User =’some_user’插入第二个条目,或使用Host =’localhost’和User =’‘删除条目。删除条目后,请记住发出FLUSH PRIVILEGES语句以重新加载授权表。另请参见第5.4.4节“访问控制,阶段1:连接验证”。