环境是:华为云 centos8,mysql8.0版本
您的电脑软件例如workbench或navicat无法远程连接服务器中的数据库无非以下几种问题:
1.您的防火墙是否打开:
1.检查防火墙状态:systemctl status firewalld
如果是开着的应该是:
2.如果没有开防火墙active应为dead状态,这时应先启动防火墙:systemctl start fierwalld
3.查看目前防火墙开放端口:firewall-cmd --list-ports
4.增加开放端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
5.重新加载防火墙:firewalld-cmd --reload 或 systemctl start firewalld.service (莫忘)
success
6.验证:firewall-cmd --list-ports
2.mysql数据库中您的账号没有开放远程登陆的权限
解决办法:1 登陆Mysql
mysql -uroot -p
输入密码
2 选择 mysql 数据库
use mysql;
3 在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user from user;
可以看到root用户的host默认为localhost,只允许本地访问,不允许远程连接..
对此您可以使用两种方法:
(1)设置新的账户并支持远程登录,语句为:GRANT ALL PRIVILEGES ON *.* TO 'yibu'@'%'
(2)直接将root账户改为可远程登陆状态,语句为:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
或:mysql>update user set host="%" where user="root";
完成之后:mysql> FLUSH PRIVILEGES; #更新 (重要)
mysql> exit #退出
在重新启动一下软件
3.您云服务器上的安全组端口问题:
如图所示:您先查看一下新的安全组上端口3306是否打开
添加的步骤也是非常简单 您打开后非常容易操作
解决办法,直接添加端口就好
谢谢!