Mysql-Specified key was too long-不明白为啥? [复制]
Posted
技术标签:
【中文标题】Mysql-Specified key was too long-不明白为啥? [复制]【英文标题】:Mysql-Specified key was too long-can't understand why? [duplicate]Mysql-Specified key was too long-不明白为什么? [复制] 【发布时间】:2019-04-09 01:13:11 【问题描述】:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节(SQL:alter table
users
add uniqueusers_email_unique
(
我所做的每一件事都会无缘无故地弹出该错误...我确实创建了具有默认值的数据库并且它弹出...复制 100% 的工作代码它会弹出..即使它得到了合理的修复。 . 就像用相同的细节再次创建相同的数据库.. 我现在真的很厌烦它,因为它在 15 个不同的项目中弹出...无法理解为什么它会弹出甚至 git 修复...只是制作唯一的键或主要的,它有时会弹出,而其他的则不会! ...重新安装 Apache 就像 5 次获得最新版本 .. 仍然弹出 100% 工作代码 它可能弹出的逻辑原因是什么?
我所做的只是进行身份验证并将其迁移到数据库(laravel) 错误:
Illuminate\Database\QueryException : SQLSTATE[42S01]: 基表或视图已存在:1050 表“用户”已存在(SQL:创建 表
users
(id
int unsigned not null auto_increment 主键,name
varchar(255) 不为空,email_verified_at
时间戳为空,password
varchar(255) 不为空,remember_token
varchar(100) 空,created_at
时间戳空,updated_at
timestamp null) 默认字符集 utf8mb4 collate 'utf8mb4_unicode_ci')在 C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // 如果尝试运行查询时发生异常,我们将格式化错误 661| // 包含与 SQL 的绑定的消息,这将使该异常成为 662| // 对开发人员更有帮助,而不仅仅是数据库的错误。 663|捕获(异常 $e)
664|抛出新的查询异常( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| 668|
异常跟踪:
1 PDOException::("SQLSTATE[42S01]: 基表或视图已经 存在:1050 表“用户”已经存在”) C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
2 PDOStatement::execute() C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
块引用
【问题讨论】:
试试这个:laravel-news.com/laravel-5-4-key-too-long-error @Blank 请回复我的回答。如果您仍有疑问,请询问我,我很乐意为您提供帮助。 @UdhavSarvaiya 抱歉回复晚了......我昨天不在家所以我无法打开我的电脑我正在使用 mariadb 我读到这可能是因为旧的 mysql 版本所以我虽然这是因为我正在使用 mariadb .. 我试图将 xampp 中的服务器更改为 mysql5.7 但有很多问题.. 直到我下载了 wamp ......我试图再次测试.. 同样的问题..我开始做你的解决方案。 ..它工作得很好.. 我无法表达我的感激之情......它真的帮助了我兄弟 【参考方案1】:将此代码添加到app/Providers/AppServiceProvider.php
文件中:
use Illuminate\Support\Facades\Schema;
public function boot()
Schema::defaultStringLength(191);
您需要从数据库中删除(如果有)用户表、密码重置表并从迁移表中删除用户和密码重置条目,然后在删除旧表后运行php artisan migrate
命令
【讨论】:
以上是关于Mysql-Specified key was too long-不明白为啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Specified key was too long; max key length is 767 bytes
1071 -Specified key was too long; max key length is 767 bytes
Specified key was too long; max key length is 767 bytes
hive报错: Specified key was too long; max key length is 767 bytes
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
mysql: Specified key was too long; max key length is 767 bytes