MySQL 5.7远程连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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远程连接的主要内容,如果未能解决你的问题,请参考以下文章

mysql 5.7 修改root密码允许远程连接

设置mysql用户密码(5.6/5.7)远程连接数据库常用命令

阿里云突发性t5服务器配置mysql 5.7远程连接

linux下mysql允许远程连接

ununtu16.0 +5.7mysql远程连接问题,在/etc/mysql/my.cnf 中找不到bind-address = 127.0.0.1

MySQL5.7远程连接和增加密码