我使用 password 'password
创建了用户 user@'%'
。但我无法连接:
mysql_connect('localhost:3306', 'user', 'password');
当我创建用户 user@'localhost'
时,我能够连接。为什么? '%' 不是来自任何主机吗?
最佳答案
为了远程连接,您必须让 MySQL 将端口 3306 绑定(bind)到 my.cnf 中您机器的 IP 地址。然后,您必须在 localhost 和 '%' 通配符中创建用户并授予对所有 DB 的权限,如 。 见下文:
my.cnf(Windows 上的 my.ini)
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
然后:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
然后:
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
根据您的操作系统,您可能必须打开端口 3306 才能允许远程连接。
关于Mysql添加用户进行远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287559/