欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 关于Navicat连接虚拟机数据库时遇到的几个问题及解决办法

关于Navicat连接虚拟机数据库时遇到的几个问题及解决办法

2025/5/16 21:39:35 来源:https://blog.csdn.net/nanzhuhe/article/details/145205676  浏览:    关键词:关于Navicat连接虚拟机数据库时遇到的几个问题及解决办法

Navicat连接数据库一直在报错
在这里插入图片描述

问题背景:

Navicat安装在本机(win10),mysql安装在虚拟机(centos7),在Navicat上连接虚拟机上的mysql时遇到的几个问题,花了半天时间才弄好,哭亖。。。以此记录,希望大家少走弯路。
PS:前提,MySQL服务已经启动,可以在虚拟机上输入查看mysql状态

 service mysqld status

若是此状态,说明是启动状态
在这里插入图片描述
否则输入此命令启动mysql:

systemctl start mysqld

1. 权限问题

解决方法:
给MySQL开启远程连接权限
第一种方式:
1.打开本地虚拟机 进入mysql

mysql -uroot -p

会提示输入密码,输入后按回车即可

use mysql
select host,user from user;

在这里插入图片描述

用户root的权限仅在localhost 没有为%(允许所有用户访问)
root只能在本地连接localhost 需要改为’%’
2.执行以下代码:这里的目的是给root用户 赋予所有权限登录

update user set host = '%' where user='root';
flush privileges; #更新权限

再次查看可看到root权限已更新为%
在这里插入图片描述
第二种方式:
use mysql;
grant all on . to ‘root’@‘%’ identified by ‘你的密码’;
可能会报语法错误,可参考:https://blog.csdn.net/nanzhuhe/article/details/145207448

接着继续尝试在Navicat上连接。。。

2.端口问题

1)虚拟机的防火墙未开放端口
1、开启防火墙

systemctl start firewalld

2、查询3306端口是否开放

firewall-cmd --query-port=3306/tcp

3、开放3306端口

firewall-cmd --add-port=3306/tcp --permanent

4、重载入添加的端口

firewall-cmd --reload

5、关闭防火墙

systemctl stop firewalld

在这里插入图片描述

移除指定端口指令:

firewall-cmd --permanent --remove-port=xxxx/tcp

2)与本机的MySQL冲突

win+r打开cmd窗口,输入命令’netstat -ano’查询3306的pid,pid在最后一列:

netstat -ano | findstr :3306

拿到pid后,ctrl+alt+delete打开任务管理器,检查符合pid的进程,结束该任务
回到桌面,右键此电脑,打开管理
打开服务,关闭MySQL服务
在这里插入图片描述
然后在虚拟机中重新启动MySQL

最后终于连接上了。。。。o(╥﹏╥)o
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词