Docker MariaDB 错误 1045 (28000)

Docker MariaDB 错误 1045 (28000)

我看到了很多关于这个主题的问题,但对我来说不起作用。
当我使用 root 用户连接数据库时,出现了这个错误。
这是我从 docker 中配置的 mariadb:

docker run -d \ --name=mariadb \ -e PUID=1002 \ -e PGID=1002 \ -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \ or -e MYSQL_ROOT_PASSWORD=password -e TZ=Europe/London \ -p 3306:3306 \ -v /media/RAID250/DockerConfigs/MariaDB:/config \ --restart unless-stopped \ lscr.io/linuxserver/mariadb:latest

我尝试手动设置密码,但仍然不起作用。
我尝试删除此文件夹 /media/RAID250/DockerConfigs/MariaDB 中的所有文件以重新安装 mariadb... 没有效果。
我尝试停止 mariadb 服务,但没有一个 cmd 行起作用。
在进入容器后,我还尝试了 mariadb-secure-installation,如下所示:docker exec -it mariadb bash:

root@c7afe65d1643:/# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

先感谢您。

答案1

我相信你已经让自己成为了“无法逾越的单行线”通过在一行长命令中运行该命令。

让我们尝试逐行分解您的命令:

docker run -d \
 --name=mariadb \
 -e PUID=1002 \
 -e PGID=1002 \
 -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \
 or -e MYSQL_ROOT_PASSWORD=password \
 -e TZ=Europe/London \
 -p 3306:3306 \
 -v /media/RAID250/DockerConfigs/MariaDB:/config \
 --restart unless-stopped \
 lscr.io/linuxserver/mariadb:latest

现在很容易发现错误 - 您定义了MYSQL_ROOT_PASSWORD两次变量 - 此外很难解释 Suddenly or(很可能是指令注释)对命令做了什么。

这说明了为什么为容器创建易于管理的启动脚本是一个好主意。您可以创建以下脚本docker_mariadb.sh

#!/bin/bash

docker run -d \
  --name=mariadb \
  -e PUID=1002 \
  -e PGID=1002 \
  -e MYSQL_ROOT_PASSWORD=<the-one-and-only-true-password-here> \
  -e TZ=Europe/London \
  -p 3306:3306 \
  -v /media/RAID250/DockerConfigs/MariaDB:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/mariadb:latest

使脚本可执行:

chmod +x ./docker_mariadb.sh

现在您只需运行./docker_mariadb.sh即可启动容器,并且您还记录了容器的启动配置。

相关内容