PDOException“无法在php中找到驱动程序”

时间:2012-02-16 08:55:13

标签: php mysql symfony

我在我的linux系统上安装了Lampp,我正在学习symfony2,同时尝试使用symfony2命令创建模式

php app/console doctrine:schema:create

我收到以下错误消息: -

PDOException “could not find driver”

我还在php.ini文件中取消注释这一行extension=php_pdo_mysql.dll

我试图查看并查看我的问题,但无法解决我的问题。当我运行php -m命令时,我得到以下结果: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
openssl
pcntl
pcre
PDO
----
----

有没有办法可以解决这个问题?

9 个答案:

答案 0 :(得分:11)

在Ubuntu中,写入控制台

sudo apt-get install php5-gd php5-mysql

它会起作用

答案 1 :(得分:8)

希望您在localhost中运行您的项目。在项目文件夹app / config中有一个名为parameters.ini的文件,请确保您的Mysql数据库连接配置正确。如果您使用的是mysql,请参阅database_driver=pdo_mysql是其驱动程序。

以下是一个例子。

database_driver   = pdo_mysql
    database_host     = localhost
    database_port     =
    database_name     = databasename
    database_user     = msqlusername
    database_password = mysqlpassword//if not make blank

    mailer_transport  = smtp
    mailer_host       = localhost
    mailer_user       =
    mailer_password   =

    locale            = en

    secret            = ThisTokenIsNotSoSecretChangeIt

希望它对你有所帮助。

答案 2 :(得分:5)

您需要一个名为pdo_mysql的模块。

phpinfo()输出

中查找以下内容

pdo_mysql =>用于MySQL的PDO驱动程序,客户端库版本=> 44年1月5日

要安装pdo_mysql,您需要这样做:

 pecl install pdo
 pecl install pdo_mysql

然后将以下内容添加到php.ini文件中:

extension=pdo.so
extension=pdo_mysql.so

答案 3 :(得分:1)

brew install php70-pdo-pgsql 如果您使用brew在Mac上安装php7,请根据您安装的内容更改php版本。

答案 4 :(得分:1)

我的服务器PHP 5.6和PHP 7中安装了两个PHP版本

当我运行命令[PDOException] could not find driver时,我收到错误:php5.6 app/console doctrine:schema:update

我通过指定PHP版本来解决此错误:

[-3. -2]

答案 5 :(得分:0)

看起来你的安装缺少实现mysql连接所需的.so文件。如果您正在使用包管理系统来安装PHP,那么请确保您已经安装了所有必需的子模块(在这种情况下,我认为您将需要mysql-dev和各种PHP PDO模块),尽管这些依赖应该具有包管理器为您解决了。

如果您没有通过包管理器,那么您将必须从源代码编译所需的.so文件。

答案 6 :(得分:0)

如果您正在使用XAMPP,那么在php.ini文件行中没有897(取决于版本),

;extension=php_pdo_pgsql.dll 

取消注释,然后它显示如下

extension=php_pdo_pgsql.dll 

在php.ini文件行中没有897,然后重新启动XAMPP。

答案 7 :(得分:0)

我遇到了同样的问题,对我来说,它有多个PHP版本。 因此,指定PHP的完整地址即可解决问题。

答案 8 :(得分:0)

添加到 Jaspreet Chahal 的回答中。
将 PDO 安装为共享模块时,需要更新 php.ini 文件,以便在 PHP 运行时自动加载 PDO 扩展。您还需要在那里启用任何特定于数据库的驱动程序;确保它们列在 pdo.so 行之后,因为在加载特定于数据库的扩展之前必须初始化 PDO。如果您静态构建 PDO 和特定于数据库的扩展,则可以跳过此步骤 (Source)。

我的意思是,它应该看起来像这样 -

extension=pdo.so 应该放在不同数据库驱动的扩展之前。