gpt4 book ai didi

mysql - PDO异常 : Cannot find driver but driver installed

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:13 29 4
gpt4 key购买 nike

存在类似的问题,但没有帮助。

在 Apache 2.4 上安装 php5-fpm 通过 SSL 连接到远程 MySql 数据库。

可以通过命令行连接MySQL
mysql -u myname -p'pass' -h xx.xx.xx.xx 数据库名

无法通过 PHP 脚本连接到 MySQL。

define("DB_PASSWORD", $dbpass);
define("DB_DATABASE", $dbname);
define("DB_DSN", "mysql:host=$dbhost;dname=$dbname");
$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);

返回错误:PHP fatal error :未捕获异常“PDOException”,消息为“找不到驱动程序”

模块已加载

php5-fpm -m  
...
PDO
pdo_mysql
...

php5-fpm -i
PDO

PDO support => enabled
PDO drivers => mysql

pdo_mysql
PDO Driver for MySQL => enabled
Client API version => 5.5.43

Directive => Local Value => Master Value
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock

自从
1) php5-fpm 在端口 9000 上运行,而不是套接字
2) MySQL 在远程服务器端口 3306 上并使用 SSL

在这里捕获救命稻草,但无法弄清楚为什么这行不通。

最佳答案

讨厌回答我自己的问题,但这里是答案,以防其他人将来遇到类似问题。

忘记了 PDO 请求中的 SSL 证书。
添加:

, array(
PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ca-cert.pem'
)

构造函数所以

$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD, array(
PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ca-cert.pem'
)
);

关于mysql - PDO异常 : Cannot find driver but driver installed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955191/

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