首页 > 代码库 > MySQL 5.7远程连接

MySQL 5.7远程连接

  在VirtualBox里面装了Ubuntu虚拟机,然后在Ubuntu中安装了MySQL Community Server (GPL),版本为为5.7.18,想要从外面(主机)连接MySQL Server。

  由于Ubuntu虚拟机的网络模式为“NAT网络”,因此首先在VirtualBox中将主机的3306端口映射到Ubuntu虚拟机的3306端口;

  然后在主机中安装了MySQL Workbench,用root登陆MySQL Server却不成功,查看网上的解决办法,发现需要在Ubuntu虚拟机中修改两处地方:

  • 将/etc/mysql/my.cnf中的bind_address那一行注释掉或修改为“bind_address=0.0.0.0”:

     在我的系统上,bind_address并没有在/etc/mysql/my.cnf文件中,这个文件除去注释只有如下两行内容:

   !includedir /etc/mysql/conf.d/

     !includedir /etc/mysql/mysql.conf.d/

     根据这个内容,应该查看一下/etc/mysql/conf.d/和/etc/mysql/mysql.conf.d/这两个文件夹中的.cnf文件,发现/etc/mysql/mysql.conf.d/mysqld.cnf文件里面配置了“bind_address=127.0.0.1”,将其注释掉。

   (如果这一项没有设置,MySQL Workbench提示连接不成功:)

技术分享

  • mysql.user表中相关用户(例如root)的host域,可以修改为具体的IP地址,或者是用“%”作通配符(例如用“%”代表任何地址):UPDATE user SET host=‘%‘ WHERE user=‘root‘。

   (如果这一项没有设置,MySQL Workbench提示访问拒绝:)

技术分享

  另外,如果直接在/etc/mysql/my.cnf文件中追加“bind_address=0.0.0.0”不会成功,根据这个文件中的注释以及其现有内容,/etc/mysql/中其它地方的bind_address会覆盖掉/etc/mysql/my.cnf文件中的bind_address。

  参考:http://www.linuxidc.com/Linux/2017-04/143203.htm

  

MySQL 5.7远程连接