用户 'root'@'172.17.0.1' 对本地 Docker 容器中的 mysql 数据库 运行 的访问被拒绝
Access denied for user 'root'@'172.17.0.1' for a mysql db running in a local Docker container
我正在尝试连接到本地 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
当我尝试从主机使用 mysql -h localhost -P 3306 --protocol=TCP -u root -p
连接到数据库时,出现标题中提到的错误。我能够使用相同的命令作为在成功启动 Docker 容器 (mysql -h localhost -P 3306 --protocol=TCP -u user -p
) 的命令中初始化的用户进行连接。
我已经验证我可以在 运行 docker exec -it mariadbtest bash
和 mysql -u root -p
.
之后从 Docker 容器本身连接到数据库
如果能深入了解正在发生的事情,我将不胜感激。
MYSQL_ROOT_HOST=localhost
应该被忽略,然后它默认为 %
否则它不会匹配 172.17.0.1
我正在尝试连接到本地 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
当我尝试从主机使用 mysql -h localhost -P 3306 --protocol=TCP -u root -p
连接到数据库时,出现标题中提到的错误。我能够使用相同的命令作为在成功启动 Docker 容器 (mysql -h localhost -P 3306 --protocol=TCP -u user -p
) 的命令中初始化的用户进行连接。
我已经验证我可以在 运行 docker exec -it mariadbtest bash
和 mysql -u root -p
.
如果能深入了解正在发生的事情,我将不胜感激。
MYSQL_ROOT_HOST=localhost
应该被忽略,然后它默认为 %
否则它不会匹配 172.17.0.1