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.6/5.7)远程连接数据库常用命令
ununtu16.0 +5.7mysql远程连接问题,在/etc/mysql/my.cnf 中找不到bind-address = 127.0.0.1