You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署MySQL后登录报错:Keyring migration failed

问题解决:Docker MySQL容器连接失败的错误处理

错误原因

你第二个命令的写法有误:当运行docker run ... mysql -h localhost -u root -p时,-h localhost -u root -p会被当作MySQL服务(mysqld)的启动参数传递给镜像的默认entrypoint,而非MySQL客户端的执行命令。这导致镜像尝试启动新的mysqld实例,参数不匹配引发keyring迁移配置错误,自然无法进入客户端交互环境。

正确的两种解决方法

方法一:直接进入运行中的MySQL容器执行客户端

第一个容器MySql_EC已在运行,直接用docker exec进入该容器执行MySQL客户端命令:

docker exec -it MySql_EC mysql -u root -p

输入密码ecdev后即可进入MySQL交互式环境。

方法二:通过自定义Docker网络跨容器连接

如果需要用单独容器连接第一个MySQL服务,需让两个容器处于同一个Docker网络(默认bridge网络不支持容器名解析):

  1. 创建自定义网络:
docker network create mysql-net
  1. 修改第一个容器的启动命令,加入自定义网络:
docker run -it --rm --name MySql_EC `
    --network mysql-net `
    -e MYSQL_ROOT_PASSWORD=ecdev `
    -v MySql_ec:/var/lib/mysql:rw `
    mysql 
  1. 启动第二个容器,通过容器名MySql_EC连接服务:
docker run -it --rm --name mysql2 `
    --network mysql-net `
    mysql mysql -h MySql_EC -u root -p

这里第二个mysql是指定在容器内执行MySQL客户端命令,输入密码后即可进入交互环境。

内容的提问来源于stack exchange,提问作者kalleguld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:36:24