默认情况下,安装在阿里云上的MySQL是不支持远程连接的,如果遇到需要用到远程连接数据库的情况,则需要进行一些配置。我使用navicat进行远程连接。
在查了很多资料,踩了很多坑,终于大功告成,为了防止以后再遇到这样的问题我无法解决,决定将过程记录下来。
环境前提:Ubuntu1804、mysql5.1
文章目录
一、阿里云MySQL基本使用
这里默认已经搭建好了MySQL的环境。
- 用root用户登录MySQL,输入如下命令后输入你的数据库密码即可连接上。
mysql -u root -p
- 查看MySQL中的数据库
mysql> show datatables;
- 打开mysql数据库(需要能操作mysql数据库的权限,一般的root用户)
mysql> use mysql
- 查看数据库中的所有表
mysql> show tables;
- 退出MySQL
mysql> exit;
- 重启MySQL
sudo systemctl restart mysql
二、配置部分
1. 修改配置文件
修改这个文件***/ETC/MYSQL/MYSQL.CONF.D***(可能路径会不同,需要自己找一下)。
找到 bind-address = 127.0.0.1
修改为 bind-addresss= 0.0.0.0
有教程说注释这一行,我做的是修改,如果修改不成功的话可以试下这种方法。
2.使用两种方法来修改
2.1 直接使用用户root
- 将host设置为%,表示任何ip都能连接mysql
mysql> GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'put-your-password';
- 将host指定为某个ip
mysql> GRANT ALL ON *.* to root@'123.123.123.123' IDENTIFIED BY 'put-your-password';
- 执行完上述语句,刷新权限表,使配置生效
mysql> flush privileges;
- 退出数据库
- 重启数据库
2.2 新增一个用户来进行访问
新的用户我是提前创建好了,给定了我以为可以连接的权限,后来直接进行权限修改的。
- 新增一个用户newuser(这个新增用户名称也可以为root),设置密码为123456,并将host设置为%表示任何ip都能连接mysql
mysql> GRANT ALL ON *.* to newuser@'%' IDENTIFIED BY '123456';
- 新增用户,只有指定ip可以连接mysql
mysql> GRANT ALL ON *.* to newuser@'123.123.123.123' IDENTIFIED BY '123456';
- 执行完上述语句,刷新权限表,使配置生效
mysql> flush privileges;
- 退出数据库
- 重启数据库
三、检查阿里云环境
1. 检查服务器防火墙3306端口是否开放,要保证3306端口开放
- 防火墙问题,检查防火墙通过规则
sudo iptables -L -n | grep 3306
检查没有的话,新增一条3306的端口允许通过规则,再重新检查iptables
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
sudo iptables -L -n | grep 3306
正常应该如下图所示:
2. 检查阿里云的安全组规则是否开放了3306端口
这个部分需要参照配置参考文档进行检查。
四、进行远程连接
在navicat中输入相应的参数进行连接。用户名根据自己的配置变动。以上,便可以成功远程连接。
五、我踩的坑及一些心得
1. 2003错误
此错误通过3306端口打开得到解决
2003 - can’t connect to mysql server on ‘阿里云服务器ip’ (10038)
2. ip不允许连接问题
这个问题通过前面的给定某用户某ip可以连接得到解决。
3.一些心得
曾经用过windows的图形界面服务器,远程MySQL连接非常方便,我几乎只需要配置好MySQL的参数就可以进行连接,在一开始使用阿里云服务器Ubuntu1804,按照之前的经验对用户授权,结果我遇到了第一个坑,完全没有办法连接上远程MySQL,这个坑花了很长时间,经过仔细的排查,发现主要是3306端口的问题,最初直接命令添加3306规则,没有实质性的进展,最终在服务器的配置页面(网页)上打开了3306端口才得以解决。
第二个坑是我的ip连不上远程MySQL,经过权限配置得以解决。
总的来说,问题出在环境配置,以及对服务器的了解不够深。
一些参考链接
本文记录了在阿里云上配置MySQL远程连接的完整步骤,包括修改配置文件、设置用户权限、检查服务器防火墙和阿里云安全组规则,以及解决遇到的常见问题。适合Ubuntu1804和MySQL5.1环境。




4215

被折叠的 条评论
为什么被折叠?



