解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Laravel5.x运行迁移命令创建数据表:php artisan migrate报错。
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
以上报错是因为你的数据库版本低于当前laravel要求,laravel现在默认utf8mb4包括存储emojis支持。
如果你运行MySQL v5.7.7或者更高版本,则不会报这个错误。
解决方案:
1、找到/app/Providers/AppServiceProvider.php文件添加以下代码(如图)
Schema::defaultStringLength(191);
2、再次运行:php artisan migrate
显示如下:
In AppServiceProvider.php line 16: Class 'App\Providers\Schema' not found
3、还是/app/Providers/AppServiceProvider.php文件添加以下代码(如图)
use Illuminate\Support\Facades\Schema;
4、再次运行:php artisan migrate
(1) 如果有这个报错:
Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists:
需要删除数据库里的表,然后再php artisan migrate
(2)数据库迁移创建成功
好了,本文主要讲解了Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]的解决方法,更多关于Laravel框架的使用方法请查看下面的相关链接
相关推荐
-
Laravel 的数据库迁移的方法
本文介绍了Laravel 的数据库迁移的方法,分享给大家,具体如下: 生成迁移 --table 和 --create 选项可用来指定数据表的名称,或是该迁移被执行时会创建的新数据表.这些选项需在预生成迁移文件时填入指定的数据表: php artisan make:migration create_users_table php artisan make:migration create_users_table --create=users php artisan make:migration a
-
Laravel框架数据库迁移操作实例详解
很多人可能在学习Laravel框架的时候,对Laravel的数据库迁移(以下简称Migrations)存在着疑惑: 1. 什么是 Migrations? 2. 为什么要用 Migrations? 3. Migrations 到底方便在哪里? 好了,抱着这些问题,我们今天就一起来学习Migrations. 什么是 Migrations? 我们先来看一下Laravel官方文档怎么写的: Migrations are like version control for your database, al
-
关于laravel 数据库迁移中integer类型是无法指定长度的问题
laravel数据库迁移中integer类型是无法指定长度的,很多小伙伴对integer类型传递第二个参数后会发现迁移报以下错误 Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key 查看了sql代码后发现通过integer指定长度创建的子段自动添加了auto increament 以及
-
Laravel5.5 数据库迁移:创建表与修改表示例
数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php artisan migrate 便会在数据库中创建好user表.password_resets表和migrations表.migrations表是版本记录表. 命令执行的其实是 database\migration 下的迁移文件.迁移文件中调用的方法会替我们执行数据库操作(建表).每个文件的命名对应迁移创建
-
Laravel 5框架学习之数据库迁移(Migrations)
database migrations 是laravel最强大的功能之一.数据库迁移可以理解为数据库的版本控制器. 在 database/migrations 目录中包含两个迁移文件,一个建立用户表,一个用于用户密码重置. 在迁移文件中,up 方法用于创建数据表,down方法用于回滚,也就是删除数据表. 执行数据库迁移 复制代码 代码如下: php artisan migrate #输出 Migration table created successfully. Migrated: 2014_1
-
Laravel实现数据库迁移与支持中文的填充
前言 数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式直接修改,但是这么做有些弊端,比如在开发阶段,你自己的库表修改了,还要把这句sql语句传给别人再执行一遍,这在多人协同开发时不是一种好的方式.那有没有一种方式能让我们对数据库 库表的修改做一些简单的版本控制,同时能让其他人很方便的同步我们对数据库的修改呢? 答案是我们可以使用Laravel 内
-
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Laravel5.x运行迁移命令创建数据表:php artisan migrate报错. Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_uniqu
-
教你解决往mysql数据库中存入汉字报错的方法
一.遇到的问题 在向数据库中存入汉字时遇到这样的问题: Cause: java.sql.SQLException: Incorrect string value: '\xE6\x9F\xAF\xE5\x8D\x97' for column 'user_name' at row 1 二.分析问题 这是由于数据库设计有问题导致的,当初创建数据库的时候直接选择的默认,没有修改为utf-8,后来尝试手动修改还是不行. 尝试把数据库和表的默认字段改为utf8,但是还是不能存汉字. 三.真正的问题 真正的问
-
springboot配置mysql数据库spring.datasource.url报错的解决
目录 springboot配置mysql数据库spring.datasource.url报错 springboot下datasource连接配置 基本设置 datasource JPA jooq h2 JTA springboot配置mysql数据库spring.datasource.url报错 spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8 很常规地配置了这个mysq
-
完美解决python遍历删除字典里值为空的元素报错问题
exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' } 使用下列遍历的方法删除: 1. for e in exam: 2. if exam[e] == '': 3. del exam[e] 结果出现下列错误,怎么解决: Traceback (most recent call last): File "Untitled.py", line 3, in <module> for e in
-
laravel解决迁移文件一次删除创建字段报错的问题
需求:通过写迁移文件更新user表中 topic 字段类型,从原来的varchar到json. 因为无法直接修改成json数据类型,只能采用先删除在创建的方式. 迁移文件代码如下: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUserTable extends Migration{ /** * 运行迁移 * * @return v
-
解决vue 子组件修改父组件传来的props值报错问题
vue不推荐直接在子组件中修改父组件传来的props的值,会报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "result&
-
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
今天在项目中使用axios时发现axios.all() 方法可以执行但是控制台报错,后来在论坛中看到是由于axios.all() 方法并没有挂载到 axios对象上,需要我们手动去添加 == 只需要在你封装的axios文件里加入 == instance.all = axios.all 就完美解决了! 补充知识:vue项目中使用axios.all处理并发请求报_util2.default.axios.all is not a function异常 报错: _util2.default.axios.
-
解决React hook 'useState' cannot be called in a class component报错
目录 总览 函数组件 类组件中使用setState() 总览 当我们尝试在类组件中使用useState 钩子时,会产生"React hook 'useState' cannot be called in a class component"错误.为了解决该错误,请将类组件转换为函数组件.因为钩子不能在类组件中使用. 这里有个例子用来展示错误是如何发生的. // App.js import {useState, useEffect} from 'react'; class Example
-
Django生成数据库及添加用户报错解决方案
Django生成数据库表时报错 __init__() missing 1 required positional argument: 'on_delete' 原因: 在django2.0后,定义外键和一对一关系的时候需要加上on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错 例如: owner=models.ForeignKey(UserProfile)--->报错 owner=models.ForeignKey(UserProfile,on_delete=models.
随机推荐
- jQuery结合jQuery.cookie.js插件实现换肤功能示例
- JavaScript 表单验证正则表达式大全[推荐]
- C#和lua相互调用的方法教程
- Window Media Player 播放器
- 浅谈jQuery中的$.extend方法来扩展JSON对象
- linux下使用Docker和OSS轻松搭建ownCloud专属网盘(网盘关闭不用怕)
- 《解剖PetShop》之六:PetShop之表示层设计
- 深入理解swift变量和函数
- PHP批量查询WordPress留言者E-mail地址实现方法
- Laravel 5框架学习之向视图传送数据
- JS 新增Cookie 取cookie值 删除cookie 举例详解
- JS对文本框值的判断示例
- 基于jQuery制作小图标上下滑动特效
- sp_executesql 使用复杂的Unicode 表达式错误的解决方法
- imageVue的Slideshow模块使用技巧
- jquery中attr和prop的区别分析
- 微信小程序 弹框和模态框实现代码
- Android中EditText禁止输入表情的实例代码
- Android 中通过实现线程更新Progressdialog (对话进度条)
- Mybatis中注解@MapKey的使用详解