2015-04-29 241 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' 
    ) 
); 
相關問題