我习惯使用 Ubuntu 20.04 和这样创建的 docker mysql:
sudo docker run --name mysql-57-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=. -d --volume=/usr/share/docker/mysql57/conf.d:/etc/mysql/conf.d --volume=/usr/share/docker/mysql57/data:/var/lib/mysql mysql:5.7
之后我可以使用它访问它,mysql -u root -p --host=127.0.0.1 --port=3310
即使我在同一台机器上安装了 mysql 8.0
我尝试使用相同的设置,所以我在 Ubuntu 22.04 机器上执行了相同的 docker 命令,但是当我尝试访问它时出现此错误ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
我希望任何人都可以帮助我这是为什么?之前谢谢
看起来 docker 版本有点不同。我
Docker version 20.10.22, build 3a2c30b
上了我的 20.04 机器和Docker version 20.10.23, build 7155243
22.04 机器。在 22.04 上它不能直接把路径放在卷上,它需要先创建卷
sudo docker volume create --driver local --opt type=none --opt device=/usr/share/docker/mysql57 --opt o=bind mysql57_conf
然后在音量部分使用它
sudo docker run --name mysql-57-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=. -v mysql57_conf:/etc/mysql -d mysql:5.7
这样问题就解决了
也许你可以使用这个命令来连接 ro mysql:
docker run --name mysql-57-container -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_ROOT_HOST=% -d --volume=/usr/share/docker/mysql57/conf.d:/etc/mysql/conf.d --volume=/usr/share/docker/mysql57/data:/var/lib/mysql mysql:5.7