用户“root”@“172.17.0.1”对本地 Docker 容器中运行的 mysql 数据库的访问被拒绝

Fil*_*vic 6 mysql mariadb docker

我正在尝试连接到本地 Docker 容器内运行的 mysql 实例,但我得到了

ERROR 1045 (28000): Access denied for user 'root'@'172.17.0.1'

我通过运行以下命令来初始化容器:

docker image pull mariadb:10.4
docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=user -e MYSQL_DATABASE=test -e MYSQL_PASSWORD=password -e MYSQL_ROOT_HOST=localhost -p 3306:3306 -d docker.io/library/mariadb:10.4
Run Code Online (Sandbox Code Playgroud)

mysql -h localhost -P 3306 --protocol=TCP -u root -p当我尝试从主机连接到数据库时,出现标题中提到的错误。我能够使用相同的命令以在mysql -h localhost -P 3306 --protocol=TCP -u user -p成功启动 Docker 容器 ( ) 的命令中初始化的用户身份进行连接。

docker exec -it mariadbtest bash我已经验证在运行和后我可以从 Docker 容器本身内部连接到数据库mysql -u root -p

如果您对正在发生的事情有任何见解,我将不胜感激。

Law*_*one 4

MYSQL_ROOT_HOST=localhost应该被忽略,然后它默认为%否则它不会匹配172.17.0.1