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

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数