gpt4 book ai didi

Docker上的MySQL远程访问

转载 作者:行者123 更新时间:2023-11-29 15:25:21 25 4
gpt4 key购买 nike

在我的 docker 实例中,有一个图像mysql/mysql-server:latest,我通过它来运行它:

# docker run - name=mysql1 -e MYSQL_ROOT_HOST=% -p 3306:3306 -d <Image-ID>

我还运行以下命令:

# docker logs mysql1 | grep GENERATED

获取root密码。然后我运行:# docker exec -it mysql1 mysql -uroot -p然后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<password>';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';

此外,我在 iptables 中打开端口 3306:

-A INPUT -p tcp -m tcp - dport 3306 -j ACCEPT
-A OUTPUT -p tcp -m tcp - dport 3306 -j ACCEPT

但是我无法远程访问 MySQL。显然,当我从另一台机器运行以下命令时:

> mysql -uroot -p -h 192.168.xxx.xxx

我看到以下错误:

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.xxx.xxx' (10060 "Unknown error")

最佳答案

最佳实践是禁止远程 root 登录,我想这个 Docker 镜像也遵循了这一点。

您可以执行以下两项操作之一:

  1. 允许以 root 身份远程登录(不理想)

    使用mysql;

    UPDATE user SET host='%' WHERE user='root';

  2. 创建另一个具有适当权限的用户..(首选选项)

关于Docker上的MySQL远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59122906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com