正如上面 Ryan 所指出的,您需要的命令是
GRANT ALL ON *.* to user@'%' IDENTIFIED BY 'password';
但是,请注意,文档表明,要使其正常工作,localhost
必须为同一用户创建另一个用户帐户;否则,自动创建的匿名帐户mysql_install_db
优先,因为它具有更具体的主机列。
换句话说; 为了让用户user
能够从任何服务器进行连接;2个账户需要创建如下:
GRANT ALL ON *.* to user@localhost IDENTIFIED BY 'password';
GRANT ALL ON *.* to user@'%' IDENTIFIED BY 'password';
在此处阅读完整文档。
这是相关的参考资料:
以 root 身份连接到服务器后,您可以添加新帐户。以下语句使用 GRANT 设置四个新帐户:
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;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';
这些语句创建的帐户具有以下属性:
其中两个帐户的用户名是 monty,密码是 some_pass。这两个帐户都是超级用户帐户,具有执行任何操作的完全权限。'monty'@'localhost' 帐户只能在从本地主机连接时使用。'monty'@'%' 帐户使用 '%' 通配符作为主机部分,因此它可用于从任何主机连接。
必须同时拥有 monty 的两个帐户才能从任何地方以 monty 的身份进行连接。如果没有 localhost 帐户,当 monty 从本地主机连接时,由 mysql_install_db 创建的 localhost 的匿名用户帐户将优先。因此,monty 将被视为匿名用户。原因是匿名用户帐户比 'monty'@'%' 帐户具有更具体的主机列值,因此在用户表排序顺序中排在前面。(用户表排序在第 6.2.4 节“访问控制,第 1 阶段:连接验证”中讨论。)