如何设置mysql远程访问

Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问。

在MySQL Server端: 执行mysql 命令进入mysql 命令模式, Sql代码
mysql> use mysql; mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION; #这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server #必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆
mysql> use mysql; mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION; #这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server #必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆

那么如何远程访问呢? 在另一台MySQL 客户端(装有mysql程序包的pc ,windows或者是linux均可) 执行命令:
Sql代码 mysql -h172.21.5.29 -uadmin -padmin 即可了 //172.21.5.29就是MySQL Server的IP地址,admin admin就是刚才在 172.21.5.29上设置的远程访问帐户 mysql -h172.21.5.29 -uadmin -padmin 即可了 //172.21.5.29就是MySQL Server的IP地址,admin admin就是刚才在 172.21.5.29上设置的远程访问帐户

ERROR 1130: Host 192.168.3.100 is not allowed to connect to this MySQL server

猜想是无法给远程连接的用户权限问题。结果这样子操作mysql库,即可解决。特贴出来。。在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'。。

mysql -u root -p

mysql>use mysql;

mysql>select 'host' from user where user='root';

mysql>update user set host = '%' where user ='root';

这里会报一个错误:

  ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

可以不予理会

mysql> select host, user from user;

mysql>flush privileges;

mysql>select 'host' from user where user='root';

第一句:以权限用户root登录

第二句:选择mysql库

第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址

第五句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

第六句:刷新MySQL的系统权限相关表

第七句:再重新查看user表时,有修改。。

记得Mysql服务需要重新启动(确保修改有效),否则可能修改的结果无法体现。

 

参考地址:

http://www.cnblogs.com/hongten/archive/2012/10/25/mysql.html

http://vin-mail.blog.163.com/blog/static/3789528020127701128705/

 

posted @ 2013-04-11 09:41  沉默的猿  阅读(585)  评论(0编辑  收藏  举报
AmazingCounters.com
给我写信