本地使用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端口,如下图所示:
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
    新建连接,连接属性设置如下图:
    Navicat

参考文章

https://www.jianshu.com/p/8fc90e518e2c
https://blog.csdn.net/enweitech/article/details/80677374

Comments

⬆︎TOP