2015-04-29 205 views
0

存在类似的问题,但没有任何帮助。PDOException:找不到驱动程序,但安装了驱动程序

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

可以通过命令行
mysql -u myname -p'pass' -h xx.xx.xx.xx dbname

连接到MySQL无法通过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: Uncaught exception 'PDOException' with message 'could not find driver'

模块被加载

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 

是否有东西丢失,因为在端口9000,不是一个套接字

1)PHP5-FPM运行2)MySQL在远程服务器端口3306 &使用SSL

在这里抓着吸管,但不知道为什么这不起作用。

+1

myql:主机<-----? –

+0

错字:Live网站有mysql。以上更正。 – csi

回答

0

,似乎什么问题串myql:host=$dbhost;dname=$dbname,尝试mysql代替myql

1

恨回答我的问题,但这里是别人的情况下,将来有类似的问题的答案。

忘记了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' 
    ) 
); 
相关问题