mysql版本mysql5.7,系统环境ubuntu18
问题的来源:
我在Ubuntu系统上安装好了mysql5.7,我想要配置下远程连接,使得可以在我的其他电脑上访问到Ubuntu系统上数据库。
解决方法:
- 创建一个用于远程连接的用户;
- 开放Ubuntu系统上的3306端口;
- 更改mysql的配置文件;
步骤一:
进入到mysql,创建一个用于远程连接的root用户
mysql>grant all privileges on *.* to root@'%' identified by '123123';
mysql>flush privileges;#将用户权限从内存写入到磁盘
其中all privileges 包括有insert,delete,update,select,drop等,*.*表示任意数据库下的任何表,用户名是root,密码是123123。
步骤二:
mysql数据库连接的端口默认是3306,要想远程连接mysql,必须要让系统开放3306端口,这里使用Ubuntu自带的ufw工具。
ufw 是uncomplicated firewall 的缩写,意为简单的防火墙管理,相比于iptables工具更容易管理系统防火墙。
sudo ufw enable #开启ufw
sudo ufw allow 3306 #允许3306端口传入传出流量
sudo ufw status #查看防火墙开启了哪些端口,ipv4和ipv6分别会有一个3306端口
步骤三:
除了要开启系统3306端口,同时mysql服务器也要调整到监听任意来源的状态,因为mysql默认只会监听127.0.0.1地址,这是本地环回地址。
找到mysql配置文件,在配置文件中的[mysqld]作用域下找到变量bind-address,修改为0.0.0.0,代表任意来源。
[mysqld]
bind-address=0.0.0.0
修改完配置文件,重启mysql服务器
sudo service mysql restart
至此mysql就开启了远程连接,接下来可以测试下,在终端中输入:
mysql -h192.168.1.3 -uroot -P3306 -p
如果能进去,则测试成功。其中-h为mysql服务器所在的电脑的ip地址,可以在控制台通过ifconfig命令查看。
测试成功以后,就可以在sqlyog,datagrip等客户端中建立远程连接到mysql服务器上了。