在虚拟机Ubuntu14.04下安装了MySQL,但是在物理机中无法访问到该MySQL数据库。
排查问题过程:
在物理机中可以Ping通虚拟机的IP和telnet 3306端口也是正常的,所以不存在网络问题和防火墙的问题,就解决方法,在此做个笔记,以作备忘。
问题主要是由于MySQL默认安装后,并不允许远程访问(即非本机访问),说白了就是访问权限不够的问题。解决该问题的办法就是给用户授予对应的权限。
解决步骤:
1、修改配置文件:sudo gedit /etc/mysql/my.cnf
查找到bind-address,将 bind-address=127.0.0.1 修改为 bind-address = 0.0.0.0 ,以允许任何IP来访问MySQL服务。
2、重启MySQL服务:sudo /etc/init.d/mysql restart
3、登录MySQL数据库,给需要远程访问的用户授权:
mysql> grant all privileges ontest.* to root@"%" identified by "123456" with grant option;
本次授权root用户远程访问test数据库的权限,如果你想授权所有数据库,则用*来代替test,就表明全部数据库。
4、刷新配置,使权限立即生效:
mysql> flush privileges;
这时,通过物理主机的MySQL客户端就可以正常登录了。