Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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使用tcp而不是套接字,而不将mysql主机从localhost更改为127.0.0.1_Php_Mysql - Fatal编程技术网

强制php使用tcp而不是套接字,而不将mysql主机从localhost更改为127.0.0.1

强制php使用tcp而不是套接字,而不将mysql主机从localhost更改为127.0.0.1,php,mysql,Php,Mysql,有没有办法强迫php在不将主机参数从“localhost”更改为“127.0.0.1”的情况下,对本地mysql连接使用TCP连接而不是套接字文件 情景: 到目前为止,Apache/php和MySQL都在同一台服务器上。但出于性能和高可用性的原因,我计划将MySQL重新定位到另一台服务器。新服务器将复制到故障转移服务器。在Apache/php服务器上,我想使用haProxy(tcp)进行连接处理。 出于数据保护的原因,我无法将主机参数从“localhost”更改为“127.0.0.1” 解决方法

有没有办法强迫php在不将主机参数从“localhost”更改为“127.0.0.1”的情况下,对本地mysql连接使用TCP连接而不是套接字文件

情景:

到目前为止,Apache/php和MySQL都在同一台服务器上。但出于性能和高可用性的原因,我计划将MySQL重新定位到另一台服务器。新服务器将复制到故障转移服务器。在Apache/php服务器上,我想使用haProxy(tcp)进行连接处理。
出于数据保护的原因,我无法将主机参数从“localhost”更改为“127.0.0.1”

解决方法:

我找到的唯一解决方案是使用socat解决问题:

socat UNIX-LISTEN:/path/to/mysql.sock,fork,user=mysql,group=mysql,mode=777 TCP:127.0.0.1:3306 2> /dev/null &"

还有其他方法吗?

为什么不使用新服务器的主机名?如果使用IP地址,为什么数据保护会有风险?可能是用于盐析哈希。我无法更改主机参数,因为这涉及客户数据。出于同样的原因,我不能使用新服务器的主机名。此外,我想使用haProxy进行ha故障切换。您的想法非常难以捉摸,但我猜@EJTH是对的,您正在使用MySQL主机名编写加密密钥,可能在某些第三方CMS中,更改算法并不容易。如果
socat
对您有效,我会说这没关系,但是这个问题在这里是非常离题的,因为您对代码解决方案不感兴趣,您可能会在这里得到更好的解决方案。