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

Docker创建MySQL容器后无法连接,登录报1045访问拒绝错误

解决MySQL容器root登录失败问题

问题原因

你的Docker Compose配置里错误设置了MYSQL_USER: root,这个环境变量用于创建新的普通用户,而root是MySQL默认的超级用户,重复设置会干扰root用户的认证配置,直接导致登录失败。

修复步骤

  • 停止并清理现有容器及数据卷
    当前数据卷已存储错误的用户配置,必须清理后重新初始化:

    # 停止容器
    docker-compose stop db
    # 删除容器
    docker-compose rm -f db
    # 删除本地数据卷(注意:会清空所有数据库数据,确认无保留必要再执行)
    rm -rf .dbdata
    
  • 修正Docker Compose配置
    删除错误的MYSQL_USER和MYSQL_PASSWORD配置,仅保留MYSQL_ROOT_PASSWORD即可,修正后的配置如下:

    db:
      container_name: admin_db
      image: mysql:8.0.27
      environment:
        MYSQL_DATABASE: admin
        MYSQL_ROOT_PASSWORD: 12345
      volumes:
        - .dbdata:/var/lib/mysql
      ports:
        - 33066:3306
      networks:
        - app
    
  • 重启容器并登录

    # 启动容器
    docker-compose up -d db
    # 等待容器初始化完成(约10秒)后执行登录命令
    docker exec -it admin_db mysql -uroot -p
    

    输入密码12345即可正常登录。

额外说明

如果需要创建普通用户,不要使用root作为用户名,示例配置如下:

environment:
  MYSQL_DATABASE: admin
  MYSQL_ROOT_PASSWORD: 12345
  MYSQL_USER: admin_user
  MYSQL_PASSWORD: admin_pass

这样会自动创建admin_user普通用户,并赋予其admin数据库的全部权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:50:24