ERROR 1130: Host \’192.168.1.3\’ is not allowed to connect to this MySQL server

解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = \’%\’ where user = \’root\’;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 \’myuser\’@\’192.168.1.3\’ IDENTIFIED BY \’mypassword\’ WITH GRANT OPTION;

第一个:
mysql默认是没有开启远程控制的,必须添加远程访问的用户。
如果是安装版的话,从mysql提供的控制台进入。
用root用户登陆,然后:
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges;   * 刷新刚才的内容*

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
            @ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

同时也可以为现有的用户设置是否具有远程访问权限。如下:
use mysql;
update db set host = \’%\’ where user = \’用户名\’; (如果写成 host=localhost 那此用户就不具有远程访问权限)
FLUSH PRIVILEGES;

查看结果,执行:
   use mysql;
   select host,user,password from user;

+————–+——–+—————+
&line; Host         &line; User &line; Password &line;
+————–+——–+—————–+
&line; localhost &line;         &line;                &line;
&line; %            &line; John &line; 123456   &line;
&line; localhost &line; root &line;                &line;
+————–+—— –+—————+

总结:
     其实MySQL默认有两个数据库分别为 mysql 和 test 而MySQL用户的信息都放在数据库 mysql 的相关表中
也可以使用 Navicat (推荐)这样的GUI工具来管理用户。

第二个:
解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = \’%\’ where user = \’root\’;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 \’myuser\’@\’192.168.1.3\’ IDENTIFIED BY \’mypassword\’ WITH GRANT OPTION

“““““`
如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置:

1. KILL掉系统里的MySQL进程;

2. 用以下命令启动MySQL,以不检查权限的方式启动;

mysqld_safe -skip-grant-tables &

3. 然后用空密码方式使用root用户登录 MySQL;

mysql -u root

4. 修改root用户的密码;

mysql> update mysql.user set password=PASSWORD(\’新密码\’) where User=\’root\’;
mysql> flush privileges;
mysql> quit

5. 重新启动MySQL,就可以使用新密码登录了。

~
[root@localhost ~]# find / -name mysqld_safe

刚才命令得到 mysqld_safe 目录

历史博文

标签:, ,
八月 18, 2009 at 12:00 上午 by yippee 1,003 次
Category: Info
Tags: , ,