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

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

不会的可以参考:https://blog.youkuaiyun.com/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

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

再次尝试连接!

### 配置Navicat连接CentOS虚拟机中运行的MySQL数据库 #### 一、确认MySQL服务状态与端口情况 确保CentOS中的MySQL服务已经启动,并且监听于默认的3306端口。若发现该端口被防火墙阻止,则需通过相应命令检查防火墙配置文件是否存在以及是否允许外部访问此端口[^2]。 对于存在iptables的情况,可以利用`service iptables status`查看当前规则列表;而对于未部署iptables环境下的系统来说,默认情况下可能不会对网络流量做过多限制,但仍建议进一步核实具体的安全组策略或其他防护机制是否会干扰正常通信。 当确认3306端口处于开放状态后,可尝试采用常规TCP/IP方式进行远程链接测试。反之则推荐借助SSH隧道来建立安全通道完成数据交互操作[^1]。 #### 二、处理因版本差异引发的身份验证冲突 鉴于部分新旧版本间可能存在认证协议不兼容的情形——比如从早先使用的`mysql_native_password`切换到了更为先进的`caching_sha2_password`模式,在遇到登录失败提示时不妨考虑调整用户账户所关联的身份验证插件类型以实现顺利对接[^3]。 可以通过执行如下SQL语句更改指定用户的验证方法: ```sql ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 上述指令会将目标账号转换成支持传统握手流程的形式从而规避潜在障碍。 #### 三、创建Navicat连接实例 打开Navicat客户端软件,点击新建连接按钮并选取"MySQL"选项卡。按照向导指引依次填写必要的参数字段,像主机名(IP地址)、用户名、密码等基本信息均应如实录入。特别注意的是,如果之前选择了基于SSH的方式来进行通讯,则还需额外提供有关跳板服务器的相关资料以便构建完整的传输路径[^4]。 最后保存设置并检验能否成功获取到预期的结果集返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值