Laravel SQLSTATE [HY000] [1049]未知数据库' previous_db_name'

时间:2015-11-13 09:20:34

标签: php mysql laravel

我在Laravel项目中使用php artisan migrate时出现此错误。

[PDOException]
SQLSTATE[HY000] [1049] Unknown database 'previous_db_name'

这是我的database.php文件:

'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'current_db_name'),
        'username'  => env('DB_USERNAME', 'root'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],
],

我在https://downloads.datastax.com/odbc-cql/1.0.1.1002/this question中看到了这个错误,但没有一个没用。

8 个答案:

答案 0 :(得分:8)

它明确提到没有名为 previous_db_name 的数据库。

似乎 database.php 文件不是变量所在的位置。

检查Laravel安装文件夹中的.env文件,看看它是否是您错误指定的数据库名称。

答案 1 :(得分:4)

如果您正在使用PHP artisan serve,请重新启动它。 (以防万一有人像我一样搜索)。

答案 2 :(得分:4)

请运行以下命令:

php artisan config:cache

答案 3 :(得分:3)

在Laravel 5.x中您应该在两个文件中定义数据库详细信息

    项目文件夹中的
  1. .env文件
  2. {li> .database.php config文件夹中的文件

答案 4 :(得分:1)

php artisan cache:clear

AND

重新启动服务器

我必须终止服务器,然后为项目重新运行php artisan serve,以注册对DB_DATABASE名称的更改。即使在清除缓存后,我仍然收到错误消息,因为我没有意识到这一点。

答案 5 :(得分:0)

也可以在.env文件中设置数据库名称。

答案 6 :(得分:0)

我知道,这太迟了,但是对于像我这样的人来说,是laravel的新手,并遵循artisansweb的教程。请注意,迁移不会创建您的数据库。相反,它将仅创建所有表。假设您已经设置了.env文件。现在,重要的部分是手动创建数据库和用户(如果您决定与自定义用户一起使用)。然后,执行 php artisan migration命令

希望有帮助。

答案 7 :(得分:0)

试试这个:

<?php
    class Config {
      private $host = "localhost";
      private $db_name = "db_ahp";
      private $username = "root";
      private $password = "";
      public $conn;
    
      public function getConnection() {
        $this->conn = null;
        try {
          $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
        } catch (PDOException $exception) {
          echo "Connection error: " . $exception->getMessage();
        }
        return $this->conn;
      }
    }