docker mysql 远程连接 Lost connection to Mysql server

我安装的时候出现了,Navicat 连接不上,命令行也进不去 的问题

在这里插入图片描述

我的解决方案:运行容器时先不用设置密码

docker run --name mysql -p 3306:3306 -v /e/mysql/data:/var/lib/mysql/ -v /e/mysql/conf/my.cnf:/etc/mysql/my.cnf   -d mysql:8.0.25 

然后进入docker mysql 配置密码和权限

1、docker exec -it mysql[自己命名的容器名]  bash

2、进入 mysql  【运行的时候没有设置密码,按 Enter 直接进入】

     mysql -u root -p

3、设置 root 的 host 

     use mysql;

     select host,user from user;

    -- root 的 host 字段是 localhost ,远程不能登陆 【这边是这样的】

    update user set host = '%' where user = 'root';

4、刷新

     flush privileges;

5、测试 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 若要在Docker镜像中启用MySQL远程连接,你可以按照以下步骤进行设置。首先,使用下面的命令启动一个MySQL容器,并设置相关的数据卷和环境变量: docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:latest 其中,-p参数用于设置端口映射,将主机的3306端口映射到容器的3306端口;-v参数用于设置数据卷,将主机的配置文件目录映射到容器的/etc/mysql/conf.d目录,将主机的数据目录映射到容器的/var/lib/mysql目录;-e参数用于设置环境变量,这里设置了MySQL的root密码为123456。 接下来,你可以使用MySQL客户端连接到这个容器中的MySQL实例。如果你在本机上使用MySQL客户端,可以使用以下命令连接到容器: mysql -h 127.0.0.1 -P 3306 -u root -p 这里,-h参数指定连接的主机为127.0.0.1,-P参数指定连接的端口为3306,-u参数指定连接的用户名为root,-p参数表示需要输入密码。 如果你希望从远程主机连接到这个容器中的MySQL实例,可以将"-h 127.0.0.1"修改为容器所在主机的IP地址或域名。 请注意,为了安全起见,建议将容器的MySQL实例绑定到特定的IP地址或仅在特定网络接口上监听,以限制远程连接的访问范围。这可以通过修改MySQL的配置文件来实现,具体的配置方法可以参考Docker官方文档中关于MySQL容器的说明。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值