我最近建立了一个 mysql innodb 集群,并配置了 mysqlrouter 位于其前面。
在我的 PHP 应用程序上,如果我将端口从 3306 更改为 6446,则应用程序在尝试连接到数据库时会挂起。我从未看到任何错误消息。我确实有一个在端口 6446 上运行的 PHP 应用程序:phpmyadmin。
命令mysql
行客户端可连接到 6446。
我确实发现了一个 bug,有人在 mysql 上提交了这个问题,说 mysqlrouter 不支持压缩。如果我尝试使用压缩连接,它会失败。
elyograg@gandalf:~$ mysql -h db -P 6446 --ssl-mode=required --compression-algorithms=zlib,zstd
ERROR 2066 (HY000): Connection failed due to wrongly configured compression algorithm
因为 mysql 客户端在尝试压缩时立即出错,似乎如果压缩是问题所在,网页就会立即因错误而中止,而不是挂起。
如果我尝试使用 PDO 或 mysqli 连接一小段 PHP 代码,它会无限期地挂起,连接到 6446,并可以连接到 3306。
因为 phpmyadmin(使用 mysqli)可以工作,所以我认为 phpmyadmin 必须设置一些非默认的 mysqli 选项,以允许它连接到 6446。我试图在 phpmyadmin 中找到它创建连接的地方,但我对 PHP 代码不是很熟悉,所以我无法找到它。
我还能做什么来解决这个问题?