阿里云ESC云服务器的mysql数据库远程连接

本文介绍如何在服务器防火墙中开放3306端口,并在MySQL数据库中配置远程访问权限,包括更新用户表和刷新权限,以及阿里云安全组规则的配置。
  1. 1、服务器防火墙添加3306端口。

  2. 先看报错窗口。

    怎么解决mysql远程连接报10038的错误
  3. 通过百度,最终找到的原因是:远程3306端口未对外开放

    于是下面进行远程3306端口开放操作。

  4. 首先远程连接服务器,点击“开始”-“管理工具”-“高级安全Windows防火墙”。

    怎么解决mysql远程连接报10038的错误
  5. 在打开的窗口中,左边选中“入站规则”,右边点击“新规则”来新建一个入站规则。

    怎么解决mysql远程连接报10038的错误
  6. 在“规则类型”中选择“端口”,然后下一步。

    怎么解决mysql远程连接报10038的错误
  7. 选中“特定本地端口”,输入3306,然后下一步。

    怎么解决mysql远程连接报10038的错误
  8. 选中“允许连接”,然后下一步。

    怎么解决mysql远程连接报10038的错误
  9. 这一步默认都选中就行,,然后下一步。

    怎么解决mysql远程连接报10038的错误
  10. 最后输入新增的入站规则名称,随便填,自己明白即可。

    怎么解决mysql远程连接报10038的错误
  11. 完成后可以在入站规则列表中可以看到新增的入站规则。

    怎么解决mysql远程连接报10038的错误
  12. 现在再次在本地连接mysql远程数据库时,发现已经能正常访问了。

    问题解决。

    怎么解决mysql远程连接报10038的错误

























































2、控制台添加安全组3306端口规则



环境前提:centos7   mysql5.7

1、首先登录位于阿里云上的mysql:

?
1
mysql -u root -h localhost -p

2、打开mysql数据库    (需要有能操作mysql这个库的权限,一般是mysql的root用户)

?
1
use mysql

3、这时我们有两种方式来进行修改:

第一种:是直接将原来的 user='root' and host='localhost' 记录的host修改成%或指定的ip

1)将host设置为%表示任何ip都能连接mysql

?
1
update user set host= '%' where user= 'root' and host= 'localhost' ;

2)  当然也可以将host指定为某个ip

?
1
update user set host= '106.39.178.131' where user= 'root' and host= 'localhost' ;

3) 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效

?
1
flush privileges;

第二种: 是新增一条记录方式

1)新增一个用户newname(这个新增的用户名称也可以为root)密码为并将host设置为%表示任何ip都能连接mysql

?
1
grant all on *.* to 'newname' @ '%' identified by 'Navicat_123' ;

2)新增一个用户newname,密码为并将host设置为指定的ip 表示 只有该ip能连接mysql

?
1
grant all on *.* to 'newname' @ '106.39.178.131' identified by 'Navicat_123' ;

3) 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效

?
1
flush privileges;

当然如果想再改成本地的连接,只需要将对应用户的host改成localhost即可,

?
1
update user set host= 'localhost' where user= 'root' and host= '106.39.178.131' ;

4、不要现在就去navicat进行连接,还需要做两件事,要不你就到坑里了

     1)检查服务器防火墙3306端口开放了吗,没开放需要去开放

     2)检查一下阿里云的安全组规则中是否开放了3306端口,

如何检查及配置参考文档:[https://help.aliyun.com/document_detail/25471.html?spm=5176.100241.0.0.IneJPl]

5、现在是时候进行远程连接啦,在工具里输入相应的参数

host:  阿里云服务器的ip

port:3306

user name : 如果是第一种方式的修改,用户就是root,第二种修改就是你自己设置的名字,例如我的就是newname

password: 如果是第一种方式的修改,密码就是root的密码,第二种修改就是你自己设置的密码,例如我的就是Navicat_123

至此,连上去那一刻,有木有很激动啊。















### 如何在阿里云ECS服务器的Ubuntu系统上安装和配置MySQL #### 安装MySQL 要在阿里云ECS服务器上的Ubuntu系统中安装MySQL,可以按照以下方法操作: 通过SSH工具连接到您的阿里云ECS实例后,在终端执行以下命令来更新包管理器并安装最新版本的MySQL服务[^1]。 ```bash sudo apt update sudo apt install mysql-server ``` 完成此过程之后,MySQL服务应该已经在后台运行。可以通过下面的命令验证其状态: ```bash sudo systemctl status mysql.service ``` 如果显示`active (running)`则表明MySQL正在正常工作[^2]。 #### 配置MySQL 为了提高安全性以及适应特定需求,还需要进一步配置MySQL环境。 ##### 设置密码策略与安全选项 启动MySQL自带的安全脚本可以帮助我们移除一些危险默认设置,并设定ROOT用户的强密码: ```bash sudo mysql_secure_installation ``` 该脚本会引导用户更改root密码、删除匿名账户、禁用远程root登录等功能。 ##### 修改Root用户权限以便外部访问(可选) 如果您计划允许来自其他机器对数据库的访问,则需要调整root@localhost的主机名限制。进入MySQL控制台并通过SQL语句修改相应的记录: ```sql UPDATE user SET Host='%' WHERE User='root'; FLUSH PRIVILEGES; ``` 这一步骤使得根用户可以从任意IP地址进行连接;不过出于安全考虑建议仅开放必要的客户端IP范围而不是全部网络[^2]。 另外记得重新加载授权表使改动生效: ```sql FLUSH PRIVILEGES; ``` 最后别忘了返回防火墙规则里新增对于3306端口的支持以确保外界能够触及到这个新设好的入口[^1]。 #### 测试连接 尝试从本地或者其他设备利用Navicat或者DBeaver之类的图形化界面软件去测试刚刚建立起来的服务是否可用。输入对应的Server Address, Port Number还有Credentials即可开始初步检验成果。 ```python import pymysql.cursors connection = pymysql.connect(host='your_server_ip', port=3306, user='root', password='your_password') try: with connection.cursor() as cursor: sql = "SELECT VERSION()" cursor.execute(sql) result = cursor.fetchone() finally: connection.close() print(result) ``` 以上Python代码片段展示了怎样简单地构建一个短时间内的链接用于确认基本功能运作无误的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值