MySQL:主机问题

时间:2011-09-28 10:23:19

标签: mysql

我的Windows机器上运行了一个MySQL服务器,我希望添加能够从任何主机连接到它的用户。为了做到这一点,我使用了语句

创建用户'user_name'@'%'IDENTIFIED BY'user_pw'

但是当我尝试在本地与这个新用户连接时,它会失败。现在我通过调用CREATE USER两次解决了这个问题,第一个使用'%'作为主机,第二个使用'localhost',但我想知道是否有另一个解决方案或某些选项我必须在服务器上更改< / p>

1 个答案:

答案 0 :(得分:0)

取自here

以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'@'%'帐户更具体的主机列值,因此更早出现用户表排序顺序。 (用户表排序将在第5.4.4节“访问控制,第1阶段:连接验证”中讨论。)