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 caching_sha2_password by 'password';(username、password替换为各自账号、密码)
退出mysql:exit
重启:systemctl restart mysqld
关闭防火墙:systemctl stop firewalld.service
再次尝试连接!
标签:username,权限,虚拟机,Navicat,CentOs7,user,mysql,password,连接 From: https://www.cnblogs.com/Bernard94/p/18103955