【问题标题】:How to connect to ProxySQL with default config on Docker如何在 Docker 上使用默认配置连接到 ProxySQL
【发布时间】:2017-09-20 02:41:28
【问题描述】:

我安装了 docker,得到了最流行的带有 proxySQL 的盒子。

docker run -d -p 6032:6032 --name proxysql prima/proxysql:latest

然后我尝试像这样从本地 mysql 连接到它:

mysql -u admin -padmin -h 127.0.0.1 -P6032

我收到了这个错误:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"

我用twindb/proxysql:latestprima/proxysql:latest docker images 尝试了这个技巧,结果是一样的:(

【问题讨论】:

  • 您确定端口。镜像的 Dockerfile 没有声明任何公开的端口,默认配置文件似乎正在使用另一个端口。
  • 6032 是 proxySQL 的默认端口,如 herehere 所述。如果我在 mySQL 连接请求中指定另一个端口,我会收到 ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61 "Connection refused")

标签: mysql docker proxysql


【解决方案1】:

您无法在默认配置中从容器外部连接到 proxysql。 bash 进入proxysql容器然后执行

 mysql -u admin -p<password-here> -h 127.0.0.1 -P 6032 --prompt='proxysql>'

默认密码将是 admin

【讨论】:

  • 谢谢。这正是我那天发现的。谢谢你把它放在这里。
【解决方案2】:

您需要映射6033 而不是6032

docker run -d 6033:6033 --name proxysql prima/proxysql:latest

然后在下面运行

mysql -u admin -padmin -h 127.0.0.1 -P6033

在容器内部,mysql 侦听127.0.0.1:6032,对于外部连接,它侦听0.0.0.0:6033。所以你需要使用6033从容器外部进行连接

【讨论】:

  • 谢谢,它让我更进一步。现在我有不同的错误说:ERROR 1045 (28000): ProxySQL Error: Access denied for user 'admin' (using password: YES)。并且很清楚下一步该做什么。谢谢。
  • 请注意,如果您还希望能够访问管理配置数据库,您仍然需要映射端口6032。所以在那种情况下,我会映射两个端口,例如-p 6033:6033 -p 6032:6032
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 2019-06-09
  • 2015-02-15
  • 2019-09-19
  • 2016-02-13
相关资源
最近更新 更多