你好,我遵循了这个Mariadb的Docker教程,并且还查看了这个StackOverflow问答。我可以无问题地启动Mariadb容器,并使用命令mysql -h0.0.0.0 -uroot -pmypass
连接到root
和mypass
密码。但是,当我创建一个新用户并授予该用户所有权限后,我无法使用该特定的用户名和密码连接。我收到了拒绝访问的错误。
以下是docker ps命令
的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
268c36eac13a mariadb/server:10.3 "docker-entrypoint.s…" 31 minutes ago Up 31 minutes 0.0.0.0:3306->3306/tcp mariadbtest
我使用 docker exec -it 268c36eac13a /bin/sh
命令连接到 mariadb 容器,并执行以下命令:
mysql -uroot -pmypass
create database emails;
grant all on emails.* to 'testUser'@'localhost' identified by '123456';
当我在本地运行mysql -h0.0.0.0 -utestUser -123456
时,出现了Access denied for user 'testUser'@'172.17.0.1' (using password: YES)
错误。
谢谢您的帮助!
testUser
在localhost
和172.17.0.1
上的权限,但172.17.0.1
不是localhost
。这是因为使用了-h0.0.0.0
参数。请尝试使用-h localhost
参数。 - Andrey VolkERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
。 - quartaela