bug解决:本地无法连接虚拟机docker中的数据库

在做项目的时候,需要连接vmware上docker容器的数据库,本来可以连接,可能由于后面改了网络配置,导致出现一系列问题,作此文章记录,由于问题已经解决,一些图片不想去复现,在此多用文字叙述

问题描述

问题一

  虚拟机网络配置错误,由于前面修改网络配置,将网络还原为默认配置,导致dhcp分配ip,网关发生改变,导致无法连接.

问题二

  修改网络配置后,由于防火墙和权限等问题导致无法连接。

问题解决

在这里插入图片描述
  打开编辑-虚拟网络编辑器
在这里插入图片描述
在这里插入图片描述
  检查ip段,网关,dhcp起始ip地址,结束ip地址。先记住
  进入存放docker的虚拟机,进入下图路径
在这里插入图片描述
  使用vi或vim打开下图这个文件
在这里插入图片描述
  注意下图红圈这些部分,我这里是设置静态地址,不用dhcp进行动态分配,ipaddr要设置在dhcp起始IP地址结束ip地址之间,getway设置为前面记住的网关
在这里插入图片描述
  配置完成后,使用service network restart进行重置网络配置。
  使用ip addr查看IP地址是否配置成功
在这里插入图片描述
  完成后,在宿主机ping下该地址,如果成功则配置完成,失败在虚拟机ping下外网,看是不是网不好,这里就不赘述,我配置到这就好了。

  配置完成后,我使用navicat连接数据库,发现出现连接失败,修改权限和防火墙后即可。
  使用下图命令进入容器
在这里插入图片描述
  使用下图命令进入mysql
在这里插入图片描述
  使用以下命令修改权限
在这里插入图片描述
  先使用flush privileges,退出到容器命令行,再使用命令service mysql restart重启mysql。使用systemctl stop firewalld关闭防火墙。至此,bug修复。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在主机上连接虚拟机Docker MySQL,可以使用以下步骤: 1. 确认虚拟机的 IP 地址 首先需要确定虚拟机的 IP 地址。可以在虚拟机使用以下命令查看 IP 地址: ``` ifconfig ``` 这个命令会列出虚拟机所有的网络接口及其 IP 地址。找到虚拟机所在的网络接口,记录下其 IP 地址。 2. 在虚拟机启动 MySQL 容器 在虚拟机启动 MySQL 容器,并将容器的 3306 端口映射到虚拟机的一个端口,例如 3306 端口。可以使用以下命令启动 MySQL 容器: ``` docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest ``` 这个命令会启动一个名为 mysql 的容器,并将容器的 3306 端口映射到虚拟机上的 3306 端口。其,password 是 MySQL 的 root 用户的密码。 3. 确认虚拟机的防火墙或安全组配置 如果虚拟机启用了防火墙或安全组,需要确认是否已经开放了虚拟机上的 3306 端口。在 Linux 系统,可以使用以下命令打开端口: ``` sudo ufw allow 3306/tcp ``` 在 Windows 系统,可以使用以下命令打开端口: ``` netsh advfirewall firewall add rule name="MySQL" dir=in action=allow protocol=TCP localport=3306 ``` 这个命令会打开虚拟机的 3306 端口,允许外部访问。注意,这个操作可能会导致虚拟机的安全风险增加,请谨慎操作。 4. 在主机上连接 MySQL 数据库 使用 MySQL 客户端工具连接虚拟机Docker MySQL 数据库。需要在客户端工具指定虚拟机的 IP 地址和端口号。在本例MySQL 服务器的 IP 地址为虚拟机的 IP 地址,端口号为映射到虚拟机上的 3306 端口。可以使用以下命令连接MySQL 数据库: ``` mysql -h 虚拟机的IP地址 -P 3306 -u root -p ``` 这个命令会连接虚拟机上的 3306 端口,并使用 root 用户名和密码进行身份验证。如果连接成功,就可以在命令行输入 SQL 命令来操作 MySQL 数据库了。 注意,如果 MySQL 容器的 root 用户的密码不是 password,需要将上面的命令的 -e MYSQL_ROOT_PASSWORD=password 替换为正确的密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值