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服务需要重新启动(确保修改有效),否则可能修改的结果无法体现。
参考地址: