gpt4 book ai didi

php - mysqli 通过 ssl 提供 2003

转载 作者:行者123 更新时间:2023-11-30 21:53:12 24 4
gpt4 key购买 nike

我正在通过 ssl 使用 mysqli 连接,所以在以下代码中使用:

$mdbconnection = mysqli_init();
$mdbconnection->ssl_set('/ssl/xyz.pem', '/ssl/abc-cert.pem', NULL, NULL, 'AES256-SHA');
$mdbconnection->real_connect(SV_SERVER, SV_MYSQL_LOGIN, SV_MYSQL_PASSWORD, SV_MYSQL_DATABASE);

我记下了我无法一直连接到 mysql 服务器。如果尝试 100 次失败 3 次。

并得到以下错误

echo($mdbconnection->connect_errno);

打印:

2003

如果我在失败后第二次尝试,{echo($mdbconnection->connect_errno); 将始终给出 1045

我正在尝试解决这个错误。
任何想法将不胜感激。

最佳答案

2003 错误代码表示无法建立连接: https://dev.mysql.com/doc/refman/5.5/en/error-messages-client.html

错误代码 1045 表示客户端已连接但服务器拒绝了凭据(访问被拒绝): https://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html

我想说的是,如果您在每 100 次尝试中有几次收到 2003 错误代码,听起来有些可能性可能是:

  1. 某些中间应用程序或硬件可能会将您的尝试视为可能的洪水攻击 (DDoS),并且可能会拦截并阻止连接(如果您的连接速度真的很快达到 100 次)

  2. 您可能在客户端遇到一些网络稳定性问题。可能值得花时间运行 Wireshark 并在其运行时重现问题,以便捕获问题并查看它是否显示任何重要内容(例如 DNS 故障)。

  3. MySQL 服务器可能崩溃然后重新启动。检查您的服务器端 MySQL 错误日志 ( https://dev.mysql.com/doc/refman/5.7/en/error-log.html )。实际上,每当您在 MySQL 中遇到奇怪的行为时,您真的应该将此作为第一步。

  4. 如果 MySQL 服务器日志没有显示任何内容,请检查您的系统日志,特别是如果您正在记录任何类似被阻止的防火墙(iptables 或您正在使用的任何 f/w)数据包并搜索它们以查找您的问题发生时的客户端 IP。

最后,如果您可以轻松/快速地重现此问题(例如,通过脚本建立 100 个连接并看到它失败),请尝试从等式中排除 SSL 并在不使用 SSL 的情况下进行连接,看看它是否会给您带来同样的问题。如果它在没有 SSL 的情况下完美运行,则可能是在编译 MySQL 包期间使用的 SSL 库有问题。

您可能还想检查一下您是否有任何负载平衡可以使您的脚本连接到 MySQL 服务器的不同实例(这种可能性较小,但可以解释您看到的症状服务器已关闭,下一个没有您提供的凭据)

关于php - mysqli 通过 ssl 提供 2003,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266472/

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