解决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实现数据库迁移与支持中文的填充
前言 数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式直接修改,但是这么做有些弊端,比如在开发阶段,你自己的库表修改了,还要把这句sql语句传给别人再执行一遍,这在多人协同开发时不是一种好的方式.那有没有一种方式能让我们对数据库 库表的修改做一些简单的版本控制,同时能让其他人很方便的同步我们对数据库的修改呢? 答案是我们可以使用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 以及
-
Laravel 5框架学习之数据库迁移(Migrations)
database migrations 是laravel最强大的功能之一.数据库迁移可以理解为数据库的版本控制器. 在 database/migrations 目录中包含两个迁移文件,一个建立用户表,一个用于用户密码重置. 在迁移文件中,up 方法用于创建数据表,down方法用于回滚,也就是删除数据表. 执行数据库迁移 复制代码 代码如下: php artisan migrate #输出 Migration table created successfully. Migrated: 2014_1
-
Laravel5.5 数据库迁移:创建表与修改表示例
数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php artisan migrate 便会在数据库中创建好user表.password_resets表和migrations表.migrations表是版本记录表. 命令执行的其实是 database\migration 下的迁移文件.迁移文件中调用的方法会替我们执行数据库操作(建表).每个文件的命名对应迁移创建
-
解决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.
随机推荐
- Delphi实现读取系统时间与日期完整实例
- 初学js 新节点的创建 删除 的步骤
- xshell上传下载文件(Windows、Linux)
- asp.net类序列化生成xml文件实例详解
- Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
- Google Suggest ;-) 基于js的动态下拉菜单
- Bootstrap导航简单实现代码
- 模拟QQ心情图片上传预览示例
- 解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
- 浅析PHP中的字符串编码转换(自动识别原编码)
- 星球大战与Python之间的那些事
- Python MD5加密实例详解
- Android 解决WebView调用loadData()方法显示乱码的问题
- js实现九宫格拼图小游戏
- Shell脚本中实现切换用户并执行命令操作
- 把Node.js程序加入服务实现随机启动
- 比较SQL Server与Oracle、DB2数据库的一些知识
- jQuery模拟Marquee实现无缝滚动效果完整实例
- JS实现物体带缓冲的间歇运动效果示例
- .net中下载文件的实例代码