Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli overssl2003_Php_Mysql_Ssl_Mysqli - Fatal编程技术网

Php mysqli overssl2003

Php mysqli overssl2003,php,mysql,ssl,mysqli,Php,Mysql,Ssl,Mysqli,我正在通过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_D

我正在通过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\u errno)}
将始终给出
1045

我正在尝试解决此错误。

如果您有任何想法,我们将不胜感激。

2003年的错误代码意味着无法建立连接:

错误代码1045表示客户端已连接,但服务器拒绝了凭据(访问被拒绝):

我想说的是,如果您在每100次尝试中都会出现几次2003年的错误代码,那么听起来可能有以下几种情况:

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

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

  • MySQL服务器可能会崩溃,然后重新启动。检查服务器端MySQL错误日志()。事实上,当你在MySQL中有奇怪的行为时,你真的应该把这作为第一步

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

  • 最后,如果您可以轻松/快速地重现这一点(例如,通过脚本建立100个连接并看到它失败),请尝试从等式中消除SSL并在不使用SSL的情况下进行连接,看看它是否会给您带来相同的问题。如果它在没有SSL的情况下工作正常,那么在编译MySQL包时使用的SSL库可能有问题


    您可能还想检查是否有任何负载平衡,使您的脚本连接到MySQL服务器的不同实例(这种情况不太可能发生,但可以解释在一台服务器停机而下一台服务器没有您提供的凭据时所看到的症状)

    2003年的错误代码表示无法建立连接:

    错误代码1045表示客户端已连接,但服务器拒绝了凭据(访问被拒绝):

    我想说的是,如果您在每100次尝试中都会出现几次2003年的错误代码,那么听起来可能有以下几种情况:

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

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

  • MySQL服务器可能会崩溃,然后重新启动。检查服务器端MySQL错误日志()。事实上,当你在MySQL中有奇怪的行为时,你真的应该把这作为第一步

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

  • 最后,如果您可以轻松/快速地重现这一点(例如,通过脚本建立100个连接并看到它失败),请尝试从等式中消除SSL并在不使用SSL的情况下进行连接,看看它是否会给您带来相同的问题。如果它在没有SSL的情况下工作正常,那么在编译MySQL包时使用的SSL库可能有问题

    您可能还想检查是否有任何负载平衡,使您的脚本连接到MySQL服务器的不同实例(这种情况不太可能发生,但可以解释在一台服务器停机而下一台服务器没有您提供的凭据时所看到的症状)