【问题标题】:MySQL on Docker remote accessDocker 远程访问上的 MySQL
【发布时间】:2019-12-01 14:09:14
【问题描述】:

在我的 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】:

    最好的做法是禁止远程 root 登录,我想这个 Docker 镜像已经遵循了。

    您可以做以下两件事之一:

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

      使用 mysql;

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 2021-11-04
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2020-04-22
      相关资源
      最近更新 更多