我的数据库安装在了虚拟机的docker中,启动MySQL后,在主机上使用navicat一直连接不上。
首先确认密码是否有问题:
docker exec -it mysql8 bash #进入mysql容器
mysql -u root -p #登录MySQL,我这边密码是123456
密码没问题的话看一下用户权限表,给予root用户最大权限
select host,user,plugin,authentication_string from mysql.user; #查看用户权限表
GRANT all privileges ON *.* TO 'root'@'%'; #给予root用户最大权限
flush privileges; #刷新权限表
关闭虚拟机的防火墙:
systemctl stop firewalld
systemctl disable firewalld #这是永久关闭
再试一下,或者将docker mysql重启,我这边还是不行。只能去网上找找了
发现可能是路由转发的问题:
IP转发,是指Linux系统可以像路由器一样工作,将数据包从一个网络接口转发到另一个网络接口,实现不同网络之间的通信。
查看IP转发的当前状态:
sysctl net.ipv4.ip_forward
如果输出为 net.ipv4.ip_forward = 1
,则表示IP转发已启用。如果输出为 net.ipv4.ip_forward = 0
,则表示IP转发已禁用。
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
#将命令写入到/etc/sysctl.conf文件中
sysctl -p #重新读取配置文件并应用新的设置
再试试就看就可以了。