我在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中看到了这个错误,但没有一个没用。
答案 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中您应该在两个文件中定义数据库详细信息
.env
文件.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;
}
}