如果你想远程连接你的mysql的时候发生这个错误:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
这是因为没有设置远程访问mysql数据库服务器的权限。
解决方法:
1. 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql> use mysql;
mysql> update user set host = '%' where user = 'root' and host ='localhost';
mysql> flush privileges;
mysql> select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.1.5.21' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> select host,user,password from user;
+------------+------+-------------------------------------------+
| host | user | password |
+------------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| dbserver22 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| dbserver22 | | |
| 10.1.5.21 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+------------+------+-------------------------------------------+
7 rows in set (0.00 sec)
注意:最好使用第二种方法,来增加对服务器的访问权限