Ubuntu 22.04 上的 docker mysql 5.7

Ubuntu 22.04 上的 docker mysql 5.7

我习惯使用 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我希望有人能帮助我,为什么会这样?谢谢

答案1

也许你可以使用这个命令来连接 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

答案2

看起来 docker 版本有点不同。我Docker version 20.10.22, build 3a2c30b在 20.04 机器和Docker version 20.10.23, build 715524322.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

这样问题就解决了

相关内容