6

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

mysql驱动配置/opt/lampp/htdocs/larva/app/config/database.php

'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()需要多写一些代码,可能是db连接设置

  • php artisan migrate:make create_users --create=users和 之间的区别php artisan migrate:make create_users --create --table=users
  • 我也必须在其他地方配置数据库设置。
  • 表前缀可能有问题。
  • 我还没有在代码中的任何地方编写单行来连接数据库。在哪里编写代码中的连接字符串,或者那是后期?

  • 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
    
4

6 回答 6

6

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

  1. 打开终端并运行sudo apt-get install php5-mysql
  2. 将 db-host 更改为 127.0.0.1(而不是使用 localhost)
于 2016-02-20T13:09:39.300 回答
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 扩展

于 2014-10-02T08:36:40.710 回答
1

我有同样的错误和设置我通过添加学说/dbal 清除它

composer require doctrine/dbal
于 2015-08-07T12:09:47.663 回答
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
于 2016-02-25T11:03:49.877 回答
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..

于 2017-10-31T12:46:58.540 回答
-2

在您的php.ini文件中取消注释

;extension=php_pdo_mysql.dll

并重新启动 apache 服务器。

于 2016-02-14T10:15:15.710 回答