Qt远程连接阿里云服务器上的MySQL出现Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘

这段时间闲来无事尝试了一下使用QT连接数据库,发现遇见一下问题Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ ,网上查阅了一些大佬的博客,总结了以下解决方案

主机设备环境:Windows 11
阿里云服务器OS:Alibaba Cloud Linux 3.2104 LTS 64位
分析原因:当远程登陆的时候,首先确定登陆密码是否正确;第二确定是否远程授权;

 第一种情况:如果登录密码不正确,可先修改数据库密码

方法:用SET PASSWORD命令
首先登录MySQL。登录命令:mysql -uroot -p
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');

第二种情况:未开启远程授权

第一步:在阿里云服务器的安全组中开放端口,手动添加端口(安全组 -> 管理规则 -> 手动添加)

 端口是3306,源的意思是哪些可以访问到,这里可按需自选,我选0.0.0.0代表可以允许所有访问

第二步:通过SSH连接服务器

我们看一下服务器端口是否放开,执行以下命令

先看一下mysql的运行状态

systemctl status mysql

如果没运行,就需要先运行

systemctl start mysql

下面命令列出开放的端口

firewall-cmd --list-ports

如果里面没有端口3306,那么就用以下命令开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

随后重启防火墙

systemctl restart firewalld.service 

这里有些朋友使用的Finalshell可能会断开与服务器的连接,小问题,可以不用理会,随后在阿里云官网重启服务器,一定要重启!!!

重启完之后重新登录数据库(mysql -u root -p)

执行授权命令

grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;

!!!注意,这个123应该要改为你自己数据库的密码  

再执行以下命令 (这步很重要!)

FLUSH PRIVILEGES;

第三步:测试SSH连接是否成功

现在可以在自己本地环境连接一下数据库

1.以Windows环境为例,打开cmd 执行以下命令,然后输入刚刚配置的密码(我设置的是123)

mysql -uroot -h xxx.xxx.xxx.xxx -p

 xxx.xxx.xxx.xxx是数据库所在服务器的地址

OK,如果出现连接成功,就可以运行Qt代码进行连接了,然后就大功告成了

  • 35
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值