当前位置: 首页 > 知识库问答 >
问题:

照明\数据库\查询异常SQLSTATE[42000]

巫培
2023-03-14

我使用的是Laravel,当我尝试运行php artisan make:migrate时,它会显示以下错误:

照明\数据库\查询异常: SQLSTATE[42000]:语法错误或访问冲突: 1071指定的密钥太长;最大密钥长度为767字节(SQL:更改表用户添加唯一users_email_unique电子邮件))

在 /Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664

  660|    // If an exception occurs when attempting to run a query, we'll format the error
  661|    // message to include the bindings with SQL, which will make this exception a
  662|    // lot more helpful to the developer instead of just the database's errors.
  663|    catch (Exception $e) {
> 664|        throw new QueryException(
  665|            $query, $this->prepareBindings($bindings), $e
  666|        );
  667|    }
  668|

异常跟踪:

1PDOException::(“SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节”)
/Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/light/Database/Connection.php:458

2PDOStatement::execute()
/Users/soksan/Desktop/TestLaravel/multiUsers/vendor/laravel/framework/src/illumb/Database/Connection.php:458

请使用参数-v查看更多详细信息。

共有3个答案

姜明贤
2023-03-14

找到config/database.php文件,并将字符集和排序规则从utf8mb4更改为utf8

字符集

狄睿
2023-03-14

转到您的laravel项目,并在该项目内打开App\Providers\AppServiceProvider类,更改引导方法并在图像中添加新的模式显示。

在顶部添加这一行

使用light\Support\Facades\Schema

替换此方法

公共函数引导(){schma::defaultStringL长度(191);}

诸葛柏
2023-03-14

进入App\Providers\AppServiceProvider类,将引导方法更改为如下所示

public function boot()
{
    Schema::defaultStringLength(191);
}
 类似资料:
  • 我刚接触laravel,尝试存储数据,但不断出现以下错误: 在控制器中的存储方法: 店铺请求: 数据库: 错误指向控制器: 但不确定怎么解决。请帮忙。提前谢谢。

  • 问题内容: 我需要有关从此DataSnapshot结果中获取“消息”对象的帮助 我可以通过获取键值,并且也可以作为对象,这是FireBase自动生成的对象名称。而不是听对象本身。如何使用DataSnapshot成员方法浏览低谷,“发送者”或“消息”并获取其值? 问题答案: 我似乎在为具有多个子项的对象添加值侦听器。我猜这是一个查询,但是如果您在问题中包含代码,那将非常有帮助。但是,在您添加它之前,

  • 我试图键入代码,以便在数据已经在sqlite中时禁用按钮。但是我发现了这个错误!你能帮我找到解决方案吗? 这是我犯的一个错误 E/AndroidRuntime:致命异常:主进程:com。实例提交文件4MadeGDK2019,PID:16246Android系统。数据库sqlite。SQLiteException:没有这样的专栏:Joker(代码1):,编译时:从android上的movie_fav

  • 我正在尝试在Laravel5.6上运行php artisan db:seed。39和获取错误: 方法照明\数据库\查询\生成器::提供不存在。 报价型号代码: 任务模型 数据库种子文件 我做得不对的是什么?

  • 我一直在尝试一个应用程序,其中我使用AsyncTask从sqlite表中检索数据。它有时工作起来没有那么多问题。但是当它失败时,Logcat看起来像这样 07-24 16:06:20.477: E/AndroidRuntime(950): 致命异常: 异步任务 #1 07-24 16:06:20.477: E/AndroidRuntime(950): java.lang.RuntimeExcept

  • 线程“main”java.lang.error:未解决的编译问题:类型不匹配:无法从java.sql.statement转换为com.mysql.jdbc.statement 我是java初学者,我正在尝试使用mysql数据库,我已经从mysql.com下载了mysql-connector-java-5.1.23-bin.jar文件,并且我已经将这个jar文件添加到我的项目的构建路径中,但是线程“