虚拟机中的linux访问宿主机中的MySQL数据库

目前的一个项目是在虚拟机中的linux下运行程序采集数据,之后将数据存入到宿主机的数据库中,做数据呈现,所以研究了以下虚拟机与宿主机之间数据库的相互访问。

前期提虚拟机中的linux系统与主机可以ping通(可以参照之前的文章),并且在两端都正确安装了MySQL

 

LinuxMySQL安装:

http://blog.csdn.net/calmreason/article/details/33727085

WindowMySQL安装:

http://blog.csdn.net/calmreason/article/details/23966241

 

环境:主机为win8 64为,linuxCentOS 64位,主机中的数据库为MySQL2005,虚拟机中的数据库为...,主机ip172.16.107.162linux系统ip172.16.107.161

 

1. 在mysql数据库中添加用户,命令为

mysql>grant all privileges on *.* to ‘usename’@’localhost\ip’ identified by “password”;

其格式为:grant 权限on数据库名.表名 ‘用户’@’登录主机’ identified by “用户密码”;

a. 其中登录主机是指从那台机器来访问数据库,例如我通过ip172.16.107.161linux来访问我ip172.16.107.162时,这里登录主机为172.16.107.161

b. 如果希望该用户可以通任何机器来远程登录数据库时,则将登录主机设为%即可。

 

2. 在window下运行cmd,输入

mysql -h 172.16.107.161 -u wyb -p XXXXXXX;

这里-h是数据库所在主机的ip,,我们这里是希望在通过window来访问linux系统中的数据库,所以这里的iplinux系统的ip,可以正常运行(如果不能正常运行,可能是linux防火墙的问题,可以通过命令:/etc/init.d/iptable stop来关闭linux的防火墙)。

 

3. 在linux终端运行:

mysql -h 172.16.107.162 -u wyb -p XXXXXXXX;

这是会报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘172.16.107.162’ (110)

通过网上查询得可能是window防火墙的问题,通过以下博客解决:

http://blog.csdn.net/litaoshoujiao/article/details/8530541

数据库server所使用的监听端口默认为3306,通过设置window防火墙允许3306端口,步骤如下:

控制面板->系统安全->防火墙->高级设置->入站规则->新建入站规则

入站规则设置如下:

第一步:选择端口;

第二步:选择TCP,选择特定端口,输入端口号为3306(如果有多个端口需要用逗号隔开,例如3306,3307);

第三步:选择允许连接;

第四步:选择应用规范(这里我全部选择);

第五步:输入规则名称(MySQ_Server)。

再次在linux终端运行:

mysql -h 172.16.107.162 -u wyb -p XXXXXXXX;

成功!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值