SQLSTATE[HY000] [1049] 未知数据库 'laravel'
SQLSTATE[HY000] [1049] Unknown database 'laravel'
我在尝试将对象保存到数据库时遇到此错误。
SQLSTATE[HY000] [1049] Unknown database 'laravel' (SQL: insert into cards
(card_price
, active
, updated_at
, created_at
) values (0, 1, 2019-10-10 15:14:43, 2019-10-10 15:14:43))
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cardgame
DB_USERNAME=root
DB_PASSWORD=P@assword1!
Database.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', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_T_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
CardController.php
public function generateCards()
{
$card = new Card();
$card->card_price = 0;
$card->active = 1;
$card->save();
}
Web.php
Route::get('/generate-cards', 'CardController@generateCards');
Card.php
class Card extends Model
{
protected $guarded =[];
}
迁移文件
public function up()
{
Schema::create('cards', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('card_price');
$table->integer('active');
$table->timestamps();
});
}
我已尝试清除缓存 并且还已将 DB_PASSWORD
编辑为 DB_T_PASSWORD
因为这更正了之前的类似问题。仔细检查 数据库名称 、 密码 等,其他项目也已经 运行。我想不通。
转到您的本地主机服务器并删除数据库并重新创建一个名为 cardgame
的新数据库
在控制台和 运行 php artisan config:cache
命令中转到您的 laravel 项目。这样你所有的环境变量都会被使用。
运行 php artisan:migrate
到 运行 迁移数据库并创建表。
如果您按顺序执行上述 3 个步骤,应该没问题。
您必须清除缓存,因为您的旧配置在缓存文件中,只需 运行 在您的终端中执行此命令以清除缓存:
php artisan config:cache
你可以通过两个简单的步骤解决这个问题。
步骤:1 php artisan config:cache
步骤:2 php artisan migrate
我遇到了同样的问题,我按照以下步骤解决了它:
1) 停止服务器
2) 运行 php artisan config:clear
。此命令行将删除
bootstrap\cache\config.php 文件
3) 启动服务器,现在应该可以正常工作了
在 php 管理员中创建数据库,然后再次迁移您的数据库
php artisan migrate ,成功了 100%
我在尝试将对象保存到数据库时遇到此错误。
SQLSTATE[HY000] [1049] Unknown database 'laravel' (SQL: insert into
cards
(card_price
,active
,updated_at
,created_at
) values (0, 1, 2019-10-10 15:14:43, 2019-10-10 15:14:43))
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cardgame
DB_USERNAME=root
DB_PASSWORD=P@assword1!
Database.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', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_T_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
CardController.php
public function generateCards()
{
$card = new Card();
$card->card_price = 0;
$card->active = 1;
$card->save();
}
Web.php
Route::get('/generate-cards', 'CardController@generateCards');
Card.php
class Card extends Model
{
protected $guarded =[];
}
迁移文件
public function up()
{
Schema::create('cards', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('card_price');
$table->integer('active');
$table->timestamps();
});
}
我已尝试清除缓存 并且还已将 DB_PASSWORD
编辑为 DB_T_PASSWORD
因为这更正了之前的类似问题。仔细检查 数据库名称 、 密码 等,其他项目也已经 运行。我想不通。
转到您的本地主机服务器并删除数据库并重新创建一个名为 cardgame
的新数据库
在控制台和 运行
php artisan config:cache
命令中转到您的 laravel 项目。这样你所有的环境变量都会被使用。运行
php artisan:migrate
到 运行 迁移数据库并创建表。
如果您按顺序执行上述 3 个步骤,应该没问题。
您必须清除缓存,因为您的旧配置在缓存文件中,只需 运行 在您的终端中执行此命令以清除缓存:
php artisan config:cache
你可以通过两个简单的步骤解决这个问题。
步骤:1 php artisan config:cache
步骤:2 php artisan migrate
我遇到了同样的问题,我按照以下步骤解决了它:
1) 停止服务器
2) 运行 php artisan config:clear
。此命令行将删除
bootstrap\cache\config.php 文件
3) 启动服务器,现在应该可以正常工作了
在 php 管理员中创建数据库,然后再次迁移您的数据库 php artisan migrate ,成功了 100%