最近在学习WordPress,于是【shì】在【zài】windows10(以下称主机)下搭建了ubuntu 16.04的虚拟机【jī】(以【yǐ】下称客机【jī】),主机IP:192.168.1.101,客机采用桥接方式连【lián】接,客机IP:192.168.1.102。
发现主【zhǔ】机能ping通客机,客机也能ping通【tōng】主机,但【dàn】MySQL的3306端口【kǒu】不通,导致主机下的navicat 无法访问到客【kè】机中的mysql。
ubuntu使用ufw辅助设置防火墙,通过命令sudo ufw from 192.168.1.101 允【yǔn】许主机192.168.1.101访问客【kè】机【jī】所【suǒ】有【yǒu】端口,当然单独通过命令 sudo ufw allow 3306 也是单独设置3306端口访问的。 到这里【lǐ】客机防【fáng】火墙已向【xiàng】主机开放相【xiàng】关【guān】端口【kǒu】。但主机navicat仍然无【wú】法【fǎ】访问客机mysql。
通过命令netstat -ant | grep 3306,查询客【kè】机linux的【de】3306端口是ESTABLISHED(监听【tīng】)的【de】,不过监【jiān】听仅限于127.0.0.1:3306,说明mysql只监听了【le】127.0.0.1地址的【de】3306端【duān】口【kǒu】。那么必须修【xiū】改MySQL的监听地址才能让主机访问到客机的MySQL。
怎么修改MySQL的【de】配【pèi】置呢?网【wǎng】上的很多版本都【dōu】在讲找/etc/my.cnf,或者【zhě】/etc/mysql/my.cnf进行配置【zhì】。ls /etc/my.cnf没有结果,/etc/mysql/my.cnf倒是有,通过sudo vim /etc/mysql/my.cnf打开一瞧,啥都木有啊
这下轮到我懵逼了去这2个目录下找找呗,恩,上天垂爱,原【yuán】来真正【zhèng】的配置文件在/etc/mysql/mysql.conf.d的【de】目录下,就是mysqld.cnf文件,执行命令sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf 注释掉bind-address=127.0.0.1使用#注释掉bind-address=127.0.0.1,撤销仅绑定127.0.0.1地址,如果不注释,修【xiū】改为0.0.0.0即可【kě】所【suǒ】有【yǒu】机【jī】器访问【wèn】该MySQL服务器。
成功访问客机版权所有:深圳市网商在线科技有限公司