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

Docker部署MariaDb后登录失败:ERROR 1045权限拒绝问题求助

问题与解决方案

问题描述

在Ubuntu远程服务器通过Docker部署MariaDB后,无法通过容器内、宿主机或远程机器登录,报错:

ERROR 1045 (28000): Access denied for user 'root'@'some_ip' (using password: YES)

操作流程:

  • 拉取镜像:docker pull mariadb:latest
  • 启动容器:docker run -d --name some_name -e MYSQL_ROOT_PASSWORD=some_secret_password -p 1111:3306 -v /volume/path:/volume/path mariadb:latest
  • 进入容器修改50-server.cnf,将bind_address 172.0.0.1改为bind_address 0.0.0.0
  • 尝试登录命令:mariadb -P 1111 --protocol=tcp -u root -p及变体均失败

解决方案

1. 修正容器内登录方式

容器内登录无需指定端口和TCP协议,直接使用本地socket连接:

mariadb -u root -p

输入启动容器时设置的some_secret_password即可登录。之前指定-P 1111是错误的,1111是宿主机的映射端口,容器内MariaDB默认端口为3306,本地socket连接无需端口参数。

2. 配置远程访问权限

MariaDB 10.4+默认root@localhost仅允许本地socket登录,需创建或修改用户以支持远程访问:
登录容器内MariaDB后执行SQL命令:

-- 创建允许所有远程地址访问的root用户
CREATE USER 'root'@'%' IDENTIFIED BY 'some_secret_password';
-- 授予全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限生效
FLUSH PRIVILEGES;

若不想开放root远程访问,可创建专用远程用户:

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;

3. 让配置修改生效

修改50-server.cnf后需重启容器使配置生效:

docker restart some_name

注:部分MariaDB Docker镜像默认bind_address已设为0.0.0.0,若不确定可通过docker exec some_name grep bind_address /etc/mysql/mariadb.conf.d/50-server.cnf查看。

4. 应急:跳过授权登录(若容器内也无法登录)

若容器内登录失败,可通过启动容器时添加跳过授权参数重置权限:

# 停止现有容器
docker stop some_name
# 启动临时容器并跳过授权
docker run -d --name some_name_temp -v /volume/path:/volume/path mariadb:latest --skip-grant-tables
# 进入临时容器
docker exec -it some_name_temp bash
# 无密码登录MariaDB
mariadb
# 修改root密码或配置权限
UPDATE mysql.user SET Password=PASSWORD('new_secret_password') WHERE User='root';
FLUSH PRIVILEGES;
# 停止临时容器,恢复正常启动
docker stop some_name_temp
docker rm some_name_temp
docker run -d --name some_name -e MYSQL_ROOT_PASSWORD=new_secret_password -p 1111:3306 -v /volume/path:/volume/path mariadb:latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:41:15