Docker MariaDB容器登录MySQL报1045错误,求解决方法
解决Docker MariaDB登录失败问题
问题分析
你遇到的ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)错误,核心原因有两点:
- 数据卷挂载路径错误,导致MariaDB初始化时未正确保存root密码配置
- 旧的无效数据残留,干扰了容器的初始化逻辑
修复步骤
1. 修正docker-compose.yaml的挂载配置
将volumes部分的挂载路径从./dbdata:/home改为MariaDB默认的数据目录./dbdata:/var/lib/mysql,修改后的完整配置片段如下:
database: image: mariadb:latest container_name: mariadb ports: - 3306:3306 environment: - MYSQL_USER=me - MYSQL_PASSWORD=password - MYSQL_ROOT_PASSWORD=password volumes: - "./dbdata:/var/lib/mysql"
2. 清理旧的无效数据
之前错误挂载生成的./dbdata目录存储的是无效的容器/home数据,需删除该目录(如有重要数据请先备份):
rm -rf ./dbdata
3. 重启容器并正确登录
- 重启容器:
docker-compose down && docker-compose up -d
- 宿主机登录(强制TCP连接,避免socket路径不匹配问题):
mysql -h 127.0.0.1 -u root -p
输入设置的password即可登录。
- 容器内部登录:
docker exec -it mariadb bash mysql -u root -p
同样输入password完成登录。
内容的提问来源于stack exchange,提问作者Max Pattern
相关产品推荐
相关产品推荐

