我设置了mysqlnd_ms以使用读/写拆分但是当我需要SSL(使用REQUIRE ISSUER来检查客户端证书的签名者)时,连接被拒绝。似乎忽略了包含证书和密钥文件的PDO::MYSQL_ATTR_SSL_*
路径的驱动程序选项数组,主机与mysqlnd_ms config
匹配。如果我使用直接address:port
连接而不是与mysqlnd_ms config
匹配,则可以正常使用。
错误消息包含正确的用户名,该用户名不在mysqlnd_ms配置中,因此至少在创建新的PDO对象时有效。
我使用PHP 5.5.25,mysqlnd 5.0.11,mysqlnd_ms 1.5.2,Percona XtraDB Cluster 5.6.21。
我的配置文件:
{
"10.2.90.27": {
"master": {
"master_0": {
"host": "10.2.90.27",
"port": "33455"
}
},
"slave": {
"slave_0": {
"host": "10.2.90.27",
"port": "33406"
}
}
}
}
是的,主机和从机的IP是相同的。它是由两个负载均衡器(HAProxy)共享的VIP,端口号决定了连接到哪个节点。 HAProxy提供故障转移,因为它具有执行运行状况检查的能力。
如何使用客户端SSL证书让mysqlnd_ms
和PDO_MYSQL相互协作?