我创建的用户user@'%'使用password 'password。但是我无法连接:
user@'%'
password 'password
mysql_connect('localhost:3306', 'user', 'password');
创建user时user@'localhost',我可以连接。为什么?’%’不是来自任何主机吗?
user@'localhost'
为了远程连接,您必须使MySQL将端口3306绑定到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才能允许远程连接。