Navicat连接本地CentOs7虚拟机中的Mysql数据库

1、准备工作:虚拟机中安装Mysql

不会的可以参考:https://blog.csdn.net/m0_66360096/article/details/134053517

2、Navicat新建连接

虚拟机IP地址是和Xshell连接一样的:https://www.cnblogs.com/Bernard94/p/18097141

账号密码是安装Mysql时默认的,当然也可以自己修改,可以参考上面安装Mysql的链接。

3、连接报错(10038)的解决办法

 如果连接报10038的错误,可能是因为默认账号的权限不够,不支持远程连接!查看权限方法如下:

启动mysql:systemctl start mysqld

(如果已启动过就省去此步骤)

 登录mysql:mysql -u root -p 

(注意:输入密码时是看不见的!)

 查看数据库:show databases;

 进入‘Mysql’库:use mysql;

 查看用户权限:select user, host from user;

上面默认的的四个用户均只能本地登录(localhost),不允许远程登录。我们有两个解决方案:

方案一、新增用户并赋予远程连接权限:

新增用户:create user 'username'@'%' identified by 'password';

(username、password是自定义的)

设置权限:grant all privileges on *.* to 'username'@'%';

(username更换为上一步自定义的)

刷新权限:flush privileges;

验证用户是否新增成功:select user, host from user;

 新增成功!

方案二、修改用户远程连接权限

修改root用户的host:update user set host='%' where user='root' and host='localhost';

设置权限:grant all privileges on *.* to 'root'@'%';

刷新权限:flush privileges;

 验证用户是否新增成功:select user, host from user;

 上面两种方案任选其一,完成上述步骤后再尝试连接!(如果选择方案一,记得把登录用户名也更新一下;如果是方案二就还是‘root’)

 4、连接报错(1251)解决办法

 如果连接报上面的错误,则是因为版本不同导致密码的加密方式不同!MySql8换了新的身份验证插件(caching_sha2_password),而原来的身份验证插件为(mysql_native_password)。

查询当前加密方式:select user , plugin from user where user= 'username' ;(username替换为各自账号)

 更新加密方式:alter user 'username'@'%'  identified with mysql_native_password by 'password';(username、password替换为各自账号、密码)

 退出mysql:exit

 重启:systemctl restart mysqld

关闭防火墙:systemctl stop firewalld.service

(只是临时关闭,如果虚拟机重启防火墙也会重新开启,需要再次关闭!否则重启后连接mysql可能会再次报错10038!)

再次尝试连接!

 

posted @ 2024-03-29 16:20  请别耽误我写BUG  阅读(37)  评论(0编辑  收藏  举报