记录使用Navicat连接阿里云远程MySQL数据库的流程,例举了其他与MySql用户权限设置的有关内容
设置服务器安全组端口放行规则
ECS云服务器安全组设置如下:
xshell设置3306端口开放
# 开启端口firewall-cmd --zone=public --add-port=3306/tcp --permanent
设置Navicat
进入Navicat,新建连接,在“常规”选项卡中输入数据库开放权限时的信息
在“SSH”选项卡中远程连接服务器,填写之前请确保centos系统以及安装并启用了ssh服务,且开放了22端口
测试连接出现的问题
问题一

出现问题的原因:在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),到mysql所在的服务器上用连接进行处理
解决步骤:一定要记得在写sql的时候要在语句完成后加上;(分号)
# 连接服务器mysql -u root -p# 看当前所有数据库show databases;# 进入mysql数据库use mysql;# 查看mysql数据库中所有的表show tables;# 查看user表中的数据select Host, User from user;# 修改user表中的Hostupdate user set Host='%' where User='root';# 最后刷新一下flush privileges;
问题二

出现问题的原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,
解决方法
- 升级navicat驱动
- 把mysql用户登录密码加密规则还原成mysql_native_password
这里采用方法2解决,具体步骤:
# 这里的’password’是你的数据库密码,输入这两行就搞定了mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'password';mysql> flush privileges;
如果出现了1130错误,即问题一,则输入一下命令
mysql> alter user 'root'@'%' identified with mysql_native_password by 'password';mysql> flush privileges;
