【问题标题】:SQLSTATE[HY000] [1049] Unknown database 'laravel'SQLSTATE[HY000] [1049] 未知数据库 'laravel'
【发布时间】:2020-02-08 02:26:58
【问题描述】:

我在尝试将对象保存到数据库时遇到此错误。

SQLSTATE[HY000] [1049] 未知数据库 'laravel' (SQL: 插入cards (card_price, active, updated_at, created_at) 值 (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!

数据库.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_PASSWORDDB_T_PASSWORD,因为这更正了之前的类似问题。仔细检查数据库名称密码等以及其他项目也已经在运行。我想不通。

【问题讨论】:

  • 向我们展示卡片模型并运行php artisan config:cache 命令
  • 您是否尝试将database 密钥由cardgame 直接更改为Database.php 文件?
  • @pr1nc3 php artisan config:cache 完成了这项工作。谢谢
  • @Goms 不,但是 forge 无论如何都会采用相同的值,对吧?
  • 很高兴我能帮上忙。当您想从头开始创建新数据库并迁移表时,发布了要采取的步骤的完整答案。它也可以为其他用户派上用场。

标签: php mysql laravel laravel-5.8


【解决方案1】:

在 php admin 中创建数据库,然后再次迁移您的数据库 php artisan migrate ,它的工作 100%

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我按照以下步骤解决了:

    1)停止服务器

    2) 运行 php artisan config:clear 。此命令行将删除 bootstrap\cache\config.php 文件

    3) 启动服务器,现在应该可以正常工作了

    【讨论】:

      【解决方案3】:

      你可以通过两个简单的步骤来解决这个问题。

      步骤:1 php artisan config:cache

      步骤:2 php artisan migrate

      【讨论】:

        【解决方案4】:
        1. 转到您的本地主机服务器并删除数据库并重新创建一个名为 cardgame

        2. 的新数据库
        3. 在控制台中进入你的 laravel 项目并运行php artisan config:cache 命令。这样你所有的环境变量都会被使用。

        4. 运行 php artisan:migrate 为您的数据库运行迁移并创建表。

        如果您按顺序执行上述 3 个步骤,您应该没问题。

        【讨论】:

          【解决方案5】:

          您必须清除缓存,因为您的旧配置在缓存文件中,只需在终端中运行此命令即可清除缓存:

          php artisan config:cache
          

          【讨论】:

            猜你喜欢
            • 2020-10-21
            • 2016-02-14
            • 2014-07-29
            • 2018-09-24
            • 1970-01-01
            • 2021-12-03
            • 1970-01-01
            • 1970-01-01
            • 2021-08-10
            相关资源
            最近更新 更多