远程连接MySQL
本地使用Navicat或者终端连接远程MySQL服务器,遇到些小坑,最终还是解决了。
环境
本地操作系统是Mac OS,使用的Navicat和Termial远程连接MySQL;远程是ALiyun服务器,ubuntu16.04,使用apt
安装MySQL社区办作为数据库服务器。
1. 确保MySQL服务启动成功
首先要确保MySQL服务启动成功,可以使用systemctl status mysql
或者service mysql status
查看数据库运行状态。
2. 阿里云防火墙
确保服务器本地能够登录MySQL命令行之后,在浏览器打开阿里云管理控制台,添加防火墙规则,打开Mysqld默认监听的3306端口,如下图所示:
3. 修改MySQL 配置
MySQL默认只监听本地连接,所以我们必须手动打开。我的系统配置文件路径为/etc/mysql/mysql.conf.d/
mysqld.cnf
,不同系统可能不同,不过,前缀路径/etc/mysql
应该是一样的。可以使用find / -name mysqld.cnf
寻找文件路径。在文件中,我们把bind-address = 127.0.0.1
注释掉。
4. 授权
进入MySQL命令行,使用命令授权用户相关权限:1
grant all privileges on database_name.* to 'username'@'%' identified by 'password';
其中:
all
是把所有权限给用户database_name.*
是把database_name
下的所有tables
,当然你也可以把所有数据库连接权利给加上,只需要把database_name
改成*
即可。username
,是连接的用户名,我这里设置成root
%
是指所有ip地址。你也可以指定特定ip地址。'password'
是用户连接的密码,比方我设置成’123456’。然后用
flush privileges;
命令刷新。
5. 重启MySQL
完成上述所有步骤之后,重启MySQL服务器。1
systemctl restart mysql
测试连接
- 本地终端
1 | mysql -h ip_of_your_remote_server -P 3306 -u root -p |
- Navicat
新建连接,连接属性设置如下图:
完
参考文章
https://www.jianshu.com/p/8fc90e518e2c
https://blog.csdn.net/enweitech/article/details/80677374