Mysql添加用户进行远程访问
我用password 'password user@'%'创build了用户user@'%' 。 但我无法连接: 
 mysql_connect('localhost:3306', 'user', 'password'); 
 当我创build用户user@'localhost' ,我能够连接。 为什么?  “%”是不是来自任何主机? 
为了远程连接,您必须将MySQL绑定端口3306连接到my.cnf中的机器IP地址。 然后,你必须在localhost和'%'通配符中创build用户,并授予所有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'@'%'; 
根据您的操作系统,您可能必须打开端口3306才能进行远程连接。
为什么数据库是用户? 看看这个例子
 mysql> create database databasename; Query OK, 1 row affected (0.00 sec) mysql> grant all on databasename.* to cmsuser@localhost identified by 'password'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 
所以回到你的问题“%”操作符意味着你的networking中的所有计算机。
像aspesa显示我也相信你必须创build或更新用户。 寻找你所有的mysql用户:
 SELECT user,password,host FROM user; 
只要你有你的用户设置你应该能够这样连接:
 mysql -h localhost -u gmeier -p 
希望它有帮助
遵循指示(窗口中不需要步骤1至3):
- 
findMySQLconfiguration来编辑: /etc/mysql/my.cnf(Mysql 5.5) /etc/mysql/conf.d/mysql.cnf(Mysql 5.6+) 
- 
在configuration文件中find bind-address=127.0.0.1更改bind-address=0.0.0.0(您可以设置绑定地址到您的一个接口ips或像我一样使用0.0.0.0)
- 
重新启动mysql服务在控制台上运行: service restart mysql
- 
用远程连接的安全密码创build一个用户。 要做到这一点在MySQL中运行以下命令(如果你是Linux用户到达MySQL控制台运行 mysql,如果你设置密码为root运行mysql -p):GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'safe_password' WITH GRANT OPTION;`
 现在你应该有一个用户名和user名和密码safe_password与远程连接的能力。