Linux 上 XAMPP 的 PDO 驱动程序

Posted

技术标签:

【中文标题】Linux 上 XAMPP 的 PDO 驱动程序【英文标题】:PDO driver for XAMPP on Linux 【发布时间】:2014-01-28 15:40:09 【问题描述】:

我即将获得一些关于 Yii 的经验,所以我为 Linux 环境设置了一个 XAMPP (1.8.1) 并安装了 Yii 框架。我根据标题为“使用 Yii 和 php 进行 Web 应用程序开发”的书进行了进步和有一个例子来设置数据库连接并通过运行以下代码通过 Yii 控制台进行测试:

echo Yii::app()->db->connectionString;

当然,之前我创建了适当的 mysql 数据库,并在相应的 main.php 和 console.php 中设置了连接字符串,但我得到了一个错误:

异常 'CDbException' 并在 /work/webroot/yii/framework/db/CDbConnection.php:382 中显示消息'CDbConnection failed to open the DB connection: could not find driver'

基于 Yii 的需求检查器 PDO for MySQL 已启用。如果我检查 phpinfo 的 html 版本,它会说:

用于 MySQL 的 PDO 驱动程序:已启用

客户端 API 版本:mysqlnd 5.0.10 - 20111026 - $Id:b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $

但是,如果我从 Yii 控制台运行 phpinfo,它会给出以下结果:

PDO 支持 => 启用

PDO 驱动程序 =>

所以,对我来说,似乎缺少 PDO 驱动程序。我阅读了几个关于如何为 linux 下载 PDO 驱动程序以及如何更改 php.ini 以使用这些驱动程序的论坛主题,但我猜该解决方案适用于 CLI 环境而不适用于 XAMPP。

有人可以帮我看看如何在 XAMPP 上为 MySQL 数据库设置 PDO 驱动程序吗?我使用的是 Ubuntu 13.10 桌面。

【问题讨论】:

【参考方案1】:

我玩了一会儿,在几个论坛帖子的帮助下找到了解决方案。

要解决以下驱动程序问题...

带有消息“CDbConnection 无法打开数据库连接:找不到驱动程序”的“CDbException”

... 我必须安装正确的连接器。我运行了以下内容:

sudo apt-get install php5-mysql

之后我尝试通过运行代码再次通过 Yii 控制台检查连接字符串:

echo Yii::app()->db->connectionString;

但这一次却给了我不同的错误信息:

'CDbException' with message 'CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

为了解决这个问题,我更改了 /protected/config 目录下的 main.php 和 console.php,并将 'localhost' 替换为 '127.0.0.1'。

基于PHP documentation,这是必需的,因为 MySQL Unix 套接字不应与主机或端口一起使用。

这解决了第二条错误消息,我可以连接到我的数据库。

【讨论】:

以上是关于Linux 上 XAMPP 的 PDO 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Linux + Phinx + XAMPP = 错误 - 需要启用 PDO_Mysql 扩展

通过 php 中的 PDO 将 xampp 连接到在线 MSSQL 数据库

PDO 连接上的 CakePHP 和 XAMPP 错误

在 xampp 中从 5.6 迁移 PHP 7 时,PDO 驱动程序在 Windows 中没有价值

两驱机器人同步控制_同步上传编码器和下载速度

PDO:未捕获的 PDOException:找不到驱动程序