Laravel Migration - 表示未知数据库,但它已创建

时间:2014-03-30 22:55:16

标签: mysql laravel-4

当我使用php artisan migrate时,我收到错误SQLSTATE[42000] [1049] Unknown database 'databaseName'

但是数据库存在!我甚至尝试回到终端,登录到mysql并再次创建数据库,它说数据库已经存在!

为什么这会给我这个错误?

4 个答案:

答案 0 :(得分:1)

我有同样的问题。当我运行:php artisan migrate。 在我的情况下,我使用带有苏格兰威士忌盒的Vagrant。

要解决此问题,请输入:

  1. vagrant ssh
  2. cd / var / www / yourproject
  3. php artisan migrate
  4. 一切顺利。

答案 1 :(得分:0)

app/config/database.php文件中,将默认值从databaseName更改为您尝试在应用程序中使用的真实数据库名称,类似于此(对于mysql驱动程序):< / p>

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'your database name', //<-- put the database name
    'username'  => 'your user name',
    'password'  => 'your password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

答案 2 :(得分:0)

有一件事可能是你的外壳。如果您阅读case sensitivity上的文档,则会说:

  

底层操作系统的区分大小写是其中的一部分   在数据库和表名称的敏感性的情况下。这意味着   在Windows和大小写中,数据库和表名称不区分大小写   在大多数Unix版本中都很敏感。一个值得注意的例外是Mac OS   X,它是基于Unix的,但使用默认的文件系统类型(HFS +)   不区分大小写。

然后查看@ app/config/database.php找到的应用程序数据库设置。

看起来像这样:

'mysql' => array(
    'read' => array(
        'host' => '192.168.1.1',
    ),
    'write' => array(
        'host' => '196.168.1.2'
    ),
    'driver'    => 'mysql',
    'database'  => 'databaseName',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

仔细检查一切。

同时尝试使用snake_case而不是camelCase作为数据库名称。

答案 3 :(得分:0)

在我的情况下,我在以下端口上安装了MySQL:3308,在Laravel env文件中有3306。