2012-02-16 53 views
12

“找不到驱动程序”我有我的Linux系统上安装LAMPP,和我学习Symfony2中,试图创建与Symfony2的命令模式PDOException在PHP

php app/console doctrine:schema:create 

我收到以下错误消息: -

PDOException “could not find driver” 

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

我想看看谷歌和我的问题,但解决不了我的问题。当我运行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 
---- 
---- 

有没有办法可以去除这个问题?

回答

7

希望你在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 

希望它可以帮助你。

+0

是的,这有帮助但我只是改变了这两件事情database_host =“127.0.0.1” database_port =“3306”它的工作 – ScoRpion 2012-02-17 06:13:10

+0

谢谢非常多 – ScoRpion 2012-02-17 06:13:30

+0

我还安装了mysql我的Ubuntu的matchine除了xampp – ScoRpion 2012-02-21 08:47:13

5

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

寻找在phpinfo()输出以下,

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

安装PDO_MYSQL你需要这样做:

pecl install pdo 
pecl install pdo_mysql 

然后添加以下到您的php.ini文件:

extension=pdo.so 
extension=pdo_mysql.so 
+0

ahh ok。我以为你在linux上。好的底线是,你将需要pdo_mysql模块来让你的PDO工作。我不知道lampp。它可以像检查pdo_mysql dll文件是否存在一样简单。在ini文件中取消注释pdo_mysql.dll包后重新启动Apache服务。 – 2012-02-16 09:11:43

+0

我正在使用lampp。错误:'/ tmp/pear/temp/PDO_MYSQL/configure'找不到MySQL头文件 错误:'/ tmp/pear/temp/PDO_MYSQL/configure'错误:无法找到MySQL头文件 错误:失败 – ScoRpion 2012-02-16 09:13:21

+0

@Jaspreet Chahal,你的答案是否适用于Linux?我与OP有同样的问题,但我没有权限编辑'php.ini'文件。如果你的答案确实有效,我会请求我的主管将它包含在'php.ini'文件中。 – WashichawbachaW 2018-03-08 01:33:54

0

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

如果您没有经过包管理器,那么您将不得不从源编译所需的.so文件。

6

在Ubuntu中,写在控制台

sudo apt-get install php5-gd php5-mysql 

,也将努力

+0

php5-gd我是失踪=)安装完所有的扩展后,这对我来说是解决方案,谢谢! – 2017-05-09 18:49:40

1

brew install php70-pdo-pgsql 的情况下,您可以根据所安装的Mac上安装PHP7与BREW和,改变PHP版本。

+0

感谢这给了我帮助。 – Dblock247 2016-03-10 19:14:18

0

如果您使用XAMPP,然后在PHP中。ini文件号线897(取决于版本),

;extension=php_pdo_pgsql.dll 

取消它,那么它看起来像在php.ini文件中的行不低于897

extension=php_pdo_pgsql.dll 

,然后重新启动XAMPP。

0

有安装在我的服务器PHP 5.6和PHP两个PHP版本7

当我运行命令php app/console doctrine:schema:update我有错误:[PDOException] could not find driver

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

php5.6 app/console doctrine:schema:update