Overview
问题:
使用 $ mysql
或 mysql-workbench 或 navicat15 连接本机的 docker-mysql 出现如下错误:
Access denied for user '<user>'@'172.17.0.1'(using password: YES)
外部图片连接备份:
https://i.loli.net/2020/04/24/amQNLKCJzi6kRuH.png
环境说明
n/a
Solution
~# docker ps -a |grep mysql
<ID>
~# docker exec -it $(docker ps -qa | grep <ID>) bash
root@<ID>:/# mysql -uroot -p
Enter Password:
mysql> CREATE USER 'joseph'@'172.17.0.1' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'joseph'@'172.17.0.1' WITH GRANT OPTION;
mysql> flush privileges;
mysql> exit
root@<ID>:/# exit
~#
- 创建
'<用户>'@'localhost'
(or'<user>'@'127.0.0.1'
) 是“只能”从 docker 内部(登录)使用的。
如:~# docker exec -it <ID> bash root@<ID>:/# mysql -u joseph -h 127.0.0.1 -p Enter Password: mysql> SELECT current_user(); mysql> SELECT current_user(); +------------------+ | current_user() | +------------------+ | joseph@127.0.0.1 | +------------------+ 1 row in set (0.00 sec) mysql>
- 需要从宿主机的 mysql client 工具登录使用,需要创建一个可以从
172.17.0.1
地址访问的账户。