远程访问MySQL数据库方法
原创
©著作权归作者所有:来自51CTO博客作者风中木偶的原创作品,请联系作者获取转载授权,否则将追究法律责任
创建mysql用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
1、授权法(前提要建立该用户)
在本地MySQL下执行以下命令:
语法:
grant 权限 on 数据库*数据库表 to 用户名@登陆主机 identified by "密码";
实例:
(1)、允许ip为192.168.1.80 的电脑以账户“wml” 密码 “111111” 访问本地数据库且拥有该数据库的所有权限
grant all privileges on *.* to wml@192.168.1.80 identified by "111111";
(2)、允许所有电脑以账户“wml” 密码 “111111” 访问本地数据库且拥有该数据库的所有权限
grant all privileges on *.* to wml@'%' identified by "111111";
(3)、允许ip为192.168.1.80 的电脑以账户“wml” 密码 “111111” 访问本地数据库且只拥有该数据库的数据查询和插入权限
grant select,insert on *.* to wml@192.168.1.80 identified by "111111";
2、改表法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
mysql -u root -p
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;
//update user set host = '192.168.0.1' where user = 'root'
这样即允许局域网中所有电脑以账户“root” 访问本地数据库
本地数据库设置完成后,远程电脑可以通过以下命令访问本地数据库:(次ip为本地主机IP)
mysql -h 192.168.1.184 -uwml -p111111;
注意:
防火墙开放3306端口
开启方法:
1、打开防火墙配置文件
vi /etc/sysconfig/iptables
2、增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3、重启防火墙
service iptables restart
注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前