前言:
-
Navicat for Mysql
-
腾讯云轻量级服务器一台(Centos 7)
-
Mysql 8.0.24(远程服务器内安装的)
-
Xshell7(连接操作远程服务器)
一、修改mysql的远程授权登录设置
1、登录远程服务器的数据库(使用Xshell)
mysql -uroot -p ## 以root登录数据库
输入root的登录密码,成功后会看到以下信息:
2、查看mysql服务当前的默认端口
use mysql; ## 选择mysql数据库
select user,host from user; ## 查看用户访问端口
3.修改host允许任何ip访问
继续在命令面板输入以下指令:
update user set host = '%' where user = 'root';
看到以上信息说明修改成功!
这时再使用之前的命令:
select user,host from user; ## 查看用户访问端口
会看到:root用户的host已经修改为’%’!
接着在命令面板输入:
mysql> FLUSH PRIVILEGES; ## 刷新服务配置项
显示Query OK,表示刷新完成。现在就可以配置我们想要远程登录的用户权限了。
4.授权root用户进行远程登录
输入命令:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root_pwd'; ## 授权root远程登录 后面的root_pwd代表登录密码
输入完之后,看到Query OK,说明执行成功!
5.启动本地Navicat连接
打开Navicat客户端,新建mysql连接
输入相关信息:
如果显示连接成功了,那么恭喜你,可以进行远程操作数据库了
二、解决无法连接问题(2003)
1、首先确定防火墙放行3306端口
2、确定防火请是否启动
[root@centos7 ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
FirewallD is not running
[root@centos7 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) #表示防火强未启动
Docs: man:firewalld(1)
[root@centos7 ~]# systemctl start firewalld
[root@centos7 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2021-03-07 20:57:40 CST; 9s ago #active (running)表示防火墙已启动
Docs: man:firewalld(1)
Main PID: 29918 (firewalld)
CGroup: /system.slice/firewalld.service
└─29918 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
3、放通防火墙
[root@centos7 ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
4、重新添加防火墙规则
[root@centos7 ~]# firewall-cmd --permanent --add-port=3305/tcp
success
[root@centos7 ~]# firewall-cmd --reload
success