gpt4 book ai didi

mysql - 如何在 Laravel 的 MySQL 8 中永久更改 sql_require_primary_key 值?

转载 作者:行者123 更新时间:2023-12-05 04:53:15 28 4
gpt4 key购买 nike

我最近在Digital Ocean中创建了一个数据库服务器,它只支持MySQL 8。当我尝试导入我的Laravel项目的数据库时,它报告了这个错误:

Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set.

所以我尝试通过运行命令在 mySQL 服务器中将 sql_require_primary_key 更改为 OFF,

设置 sql_require_primary_key = off;

并且修改成功,但是之后又自动回到之前的设置。

在 Laravel 中,一些主键是在创建表后设置的,所以在迁移时会显示错误。这是我的实时项目,因此我无法修改我已经创建的迁移。

有人知道如何在 MySQL 8 上永久更改 sql_require_primary_key 吗?

最佳答案

临时解决方法是为 Laravel 项目添加 turn sql_require_primary_key off,您可以为每个数据库连接添加一条语句。

Illuminate/Session/Console/stubs/database.stub 中,在 Schema::create() 上方添加:

use Illuminate\Support\Facades\DB;
DB::statement('SET SESSION sql_require_primary_key=0');
Schema::create('sessions' ...

完成迁移和恢复后,您可以删除此更改。

如果你使用 Digital Ocean 的 API,有 documentation on the API here .或者,您可以联系他们的支持人员为您的服务器关闭该要求。

关于mysql - 如何在 Laravel 的 MySQL 8 中永久更改 sql_require_primary_key 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66149804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com