php artisan migrate:[PDOException]找不到驱动程序

时间:2014-10-02 07:28:28

标签: laravel laravel-4 artisan artisan-migrate

我的系统配置安装了Ubuntu 14.04 + XAMPP + Laravel 4

/opt/lampp/htdocs/larva/app/config/database.php

上配置了

mysql驱动程序

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'db_larva',
            'username'  => 'root',
            'password'  => '*****',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => 'tbl_',
        ),

/opt/lampp/etc/php.ini

上启用了PDO扩展程序
extension=php_pdo_mysql.dll

使用

创建表格
php artisan migrate:make create_users --create=users 

生成2014_10_02_114459_create_users.php

php artisan migrate:make create_orders --create=orders

创建2014_10_02_054103_create_orders.php

现在终端我做了什么

cd /opt/lampp/htdocs/larva/ 
php artisan migrate

它给出了错误

  

[PDOException]无法找到驱动程序

我跑的时候

php artisan migrate --database=db_larva

它再次给出了其他错误

  

[InvalidArgumentException]
    数据库[db_larva]未配置。

请指导我做错了什么?

我的猜测:

  • 位置是否正确?在根文件夹中运行php artisan

  • function up()内的默认表结构需要编写更多代码,可能是数据库连接设置

  • php artisan migrate:make create_users --create=users和之间的差异 php artisan migrate:make create_users --create --table=users
  • 我还必须在其他地方配置数据库设置。
  • 表格前缀可能有问题。
  • 我还没有编写单行来连接数据库,代码中的任何地方。在代码中写入连接sting的位置,或者是稍后的阶段?

  • php --ini给出了不同的php ini路径?

    Configuration File (php.ini) Path: /etc/php5/cli
    Loaded Configuration File:         /etc/php5/cli/php.ini
    Scan for additional .ini files in: /etc/php5/cli/conf.d
    Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
    /etc/php5/cli/conf.d/10-pdo.ini,
    /etc/php5/cli/conf.d/20-json.ini,
    /etc/php5/cli/conf.d/20-mcrypt.ini,
    /etc/php5/cli/conf.d/20-readline.ini,
    /etc/php5/cli/conf.d/20-xdebug.ini
    

6 个答案:

答案 0 :(得分:6)

我在xubuntu 14.04上遇到此错误。我分两步修复它:

  1. 打开终端并运行CGPoint scrollPoint = CGPointMake(0, self.activeInputView.frame.origin.y);
  2. 将db-host更改为127.0.0.1(而不是使用localhost)

答案 1 :(得分:4)

参数--database=用于选择数据库连接。您的数据库连接名称为mysql,因为您有:

'mysql' =>

因此您应该使用以下命令运行此查询:

php artisan migrate --database=mysql

但是在app/config/database.php文件中有一行:

'default' => 'mysql',

如果将其设置为mysql,则在迁移时,如果要迁移到默认数据库连接,则无需传递--database参数。

php artisan migrate

就够了

修改

在您的情况下,您应该编辑/etc/php5/cli/php.ini文件以启用PDO扩展

答案 2 :(得分:1)

我有同样的错误和设置我通过添加doctrine / dbal

清除它
composer require doctrine/dbal

答案 3 :(得分:0)

更改.env文件。我也遇到了与laravel 5.2相同的问题

我已使用以下代码进行了更改,并且工作正常。

APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString

DB_HOST=localhost
DB_DATABASE=todo  /* Use your database Name */
DB_USERNAME=root   /* Use your host Name */
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file

答案 4 :(得分:0)

编辑您的.env文件并正确更新。

DB_HOST=127.0.0.1
DB_DATABASE=YOUR DB NAME
DB_USERNAME=YOUR DB USER NAME
DB_PASSWORD= YOUR DB PASSWORD

使用127.0.0.1而不是localhost ..

答案 5 :(得分:-2)

php.ini文件中取消注释

;extension=php_pdo_mysql.dll

并重启apache服务器。