Docker远程访问上的MySQL

问题描述 投票:1回答:1

在我的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")
mysql docker remote-access iptables
1个回答
1
投票

最佳做法是禁止远程root登录,我想这个Docker镜像紧随其后。

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

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

    使用mysql;

    更新用户SET主机='%',用户='root';

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

© www.soinside.com 2019 - 2024. All rights reserved.