Laravel 迁移 - 说未知数据库,但已创建

问题描述 投票:0回答:5

当我使用

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

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

为什么会给我这个错误?

mysql laravel-4
5个回答
3
投票

我也有同样的问题。当我运行: php artisan migrate. 就我而言,我使用 Vagrant 和苏格兰威士忌盒。

要解决此问题,请输入:

  1. 流浪者 ssh
  2. cd /var/www/yourproject
  3. php 工匠迁移

一切顺利。


0
投票

在您的

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

'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'    => '',
),

0
投票

有一件事可能是你的外壳。如果您阅读有关 区分大小写 的文档,它会说:

底层操作系统的区分大小写也有影响 数据库和表名的大小写敏感。这意味着 Windows 中数据库名和表名不区分大小写, 在大多数 Unix 版本中都很敏感。 Mac 操作系统是一个值得注意的例外 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'    => '',
),

并仔细检查一切。

还可以尝试使用蛇形命名法而不是驼峰命名法作为数据库名称。


0
投票

在我的例子中,我在这个端口上安装了 MySQL:3308,在 Laravel 环境文件中是 3306。


0
投票

就我而言,我必须创建与

charset
collation
匹配的数据库。

数据库.php

'mysql' => [
  'driver' => 'mysql',
  'url' => env('DATABASE_URL'),
  'host' => env('DB_HOST', '127.0.0.1'),
  'port' => env('DB_PORT', '3306'),
  'database' => env('DB_DATABASE', 'test'),
  'username' => env('DB_USERNAME', 'test'),
  'password' => env('DB_PASSWORD', ''),
  'unix_socket' => env('DB_SOCKET', ''),
  'charset' => 'utf8mb4',
  'collation' => 'utf8mb4_unicode_ci',
  ...
],

如果您使用 TablePlus,则可以在创建新数据库时简单地执行此操作

© www.soinside.com 2019 - 2024. All rights reserved.