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

diE*_*cho 6 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_',
        ),
Run Code Online (Sandbox Code Playgroud)

/opt/lampp/etc/php.ini上启用了PDO扩展

extension=php_pdo_mysql.dll
Run Code Online (Sandbox Code Playgroud)

使用创建表

php artisan migrate:make create_users --create=users 
Run Code Online (Sandbox Code Playgroud)

生成2014_10_02_114459_create_users.php

php artisan migrate:make create_orders --create=orders
Run Code Online (Sandbox Code Playgroud)

创建2014_10_02_054103_create_orders.php

现在在终端我做了什么

cd /opt/lampp/htdocs/larva/ 
php artisan migrate
Run Code Online (Sandbox Code Playgroud)

它给出了错误

[PDOException]找不到驱动程序

当我跑

php artisan migrate --database=db_larva
Run Code Online (Sandbox Code Playgroud)

它再次给出了其他错误

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

请指导我做错了什么?

我猜:

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

  • 默认表结构里面function up()需要写一些更多的代码,可能是db连接设置

  • 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
    
    Run Code Online (Sandbox Code Playgroud)

小智 6

我在xubuntu 14.04上遇到了这个错误.我分两步修复它:

  1. 打开终端并运行 sudo apt-get install php5-mysql
  2. 将db-host更改为127.0.0.1(而不是使用localhost)


Mar*_*łek 4

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

'mysql' =>
Run Code Online (Sandbox Code Playgroud)

所以你应该使用以下命令运行此查询:

php artisan migrate --database=mysql
Run Code Online (Sandbox Code Playgroud)

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

'default' => 'mysql',
Run Code Online (Sandbox Code Playgroud)

如果设置为,当您想要迁移到默认数据库连接时,迁移时mysql不需要传递参数。--database

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

就足够了

编辑

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