Laravel 安装执行php artisan migrate 出现字段过长错误

2023-11-02 04:59

本文主要是介绍Laravel 安装执行php artisan migrate 出现字段过长错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在自己研究Laravel

Laravel版本:5.6

PHP版本:7.1.9

Mysql版本:5.7.19

Apache版本:2.4.27

系统版本:windows10

首先要保证电脑安装了composer,和node.js

执行命令

composer global require "laravel/installer"

打开控制台 ,进入你要创建的目录,安装项目(tests 为你的项目文件夹名称)

laravel new tests

也可以执行命令

composer create-project --prefer-dist laravel/laravel tests

 

我用的WAMP可自主切换php版本,因为laravel5.6要求PHP最低版本在7.1,所以我从5.6切换到7.1,

phpinfo显示版本已经是7.1,然而安装laravel系统提示我php版本太低,woc。

最后找到了原因,改变了php版本还要配置系统变量。如图。

858c02a47cd1aa9aa69abd2af24c38c75ff.jpg

在web服务器配置项目根目录在public下,具体不赘述。

配置数据库 在.env文件中配置好数据库。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravels
DB_USERNAME=root
DB_PASSWORD=

laravel自带了后台登录注册功能,不想写代码啊,所以就干脆直接用他们了。

执行命令:

php artisan migrate

居然报错了!

F:\laraveltest\tests>php artisan migrate
Migration table created successfully.

   Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  at F:\laraveltest\tests\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|

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes")
      F:\laraveltest\tests\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  2   PDOStatement::execute()
      F:\laraveltest\tests\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  Please use the argument -v to see more details.
 

纳闷了半天,几番搜索,终于找到了原因。

app\Providers\AppServiceProvider.php 

找到这个文件加入下面标红代码即可。

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider

{

    public function boot()

    {

        //

        Schema::defaultStringLength(191);

    }

}

 

 

具体原因嘛,看看文档    索引长度和MySQL / MariaDB

eea7f73e3ee9398174485fabc71eb1eb776.jpg

 

然后重新执行命令就可以看到这样的信息了

F:\laraveltest\tests>php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table
 

最后执行命令

php artisan make:auth

 

返回登录界面,可以登录和注册了,忘记密码要发邮件的时候,记得配置.env文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.exmail.qq.com//自己设置的邮件发送服务器
MAIL_PORT=465//端口号
MAIL_FROM_ADDRESS=maxxxxo@zcidcs.com//自己的邮箱
MAIL_USERNAME=maxxxxo@zcidcs.com//发送者名称
MAIL_PASSWORD=*****************//邮箱密码
MAIL_FROM_NAME=maxxxxo//来源名称
MAIL_ENCRYPTION=ssl//加密方式

在服务器上部署项目时踩的坑

ubuntu16.04+php7.0+mysql5.7+apache2.4

创建项目

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel blog "5.5.*"
cd /var/www/html/blog
cp .evn.example .evn
chmod -R 777 /var/www/html/blog
chown -R www-data:www-data /var/www/html/blog/bootstarp
chown -R www-data:www-data /var/www/html/blog/storage

访问域名出错 

Whoops, looks like something went wrong。

打开config/app.php修改 

'debug' => env('APP_DEBUG', true),

然后看报错信息

RuntimeException

No application encryption key has been specified.

解决办法 

cd /var/www/html/blog
php artisan key:generate

刷新页面,正常了。

这篇关于Laravel 安装执行php artisan migrate 出现字段过长错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328306

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式