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

相关文章

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

MySQL中SQL的执行顺序详解

《MySQL中SQL的执行顺序详解》:本文主要介绍MySQL中SQL的执行顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql中SQL的执行顺序SQL执行顺序MySQL的执行顺序SELECT语句定义SELECT语句执行顺序总结MySQL中SQL的执行顺序

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见