Laravel8.x laravel voyager 执行php artisan voyager:install报错:1071 Specified key was too long

作者: 温新

分类: 【Laravel】

阅读: 1501

时间: 2021-11-25 16:38:04

执行数据库迁移文件时报错Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes,对于这个错误已经很熟悉,解决方法 Larabel迁移文件时报SQLSTATE[42000]错误的解决方法 ,就是修改为191。但是修改了,还是报长度错误,怎么解决?

如下是我遇到的错误:

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">SQLSTATE</span>[<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">42000</span>]: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">Syntax</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">error</span> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">or</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">access</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">violation</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1071</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">Specified</span> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">key</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">was</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">too</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">long</span>; <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">max</span> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">key</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">length</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">is</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1000</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">bytes</span> (<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">SQL</span>: <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">alter</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">table</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`translations`</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">add</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">unique</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`translations_table_name_column_name_foreign_key_locale_unique`</span>(<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`table_name`</span>, <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`column_name`</span>, <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`foreign_key`</span>, <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">`locale`</span>))</span>

可以看到报的还是长度错误,但是类型不一样了。这是存储引擎的原因,修改即可,解决方法如下:

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important">// config/database.php</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'engine'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'InnoDB ROW_FORMAT=DYNAMIC'</span>,</span>

完整配置如下

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'mysql'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> [</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'driver'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'mysql'</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'url'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DATABASE_URL'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'host'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_HOST'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'127.0.0.1'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'port'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_PORT'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'3306'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'database'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_DATABASE'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'forge'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'username'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_USERNAME'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'forge'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'password'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_PASSWORD'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">''</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'unix_socket'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'DB_SOCKET'</span>, <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">''</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'charset'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'utf8mb4'</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'collation'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'utf8mb4_unicode_ci'</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'prefix'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">''</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'prefix_indexes'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'strict'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">true</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(98, 151, 85) !important">// 修改引擎</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'engine'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'InnoDB ROW_FORMAT=DYNAMIC'</span>,</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'options'</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">extension_loaded</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'pdo_mysql'</span>) <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">?</span> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">array_filter</span>([</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">        <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">PDO</span>::<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">MYSQL_ATTR_SSL_CA</span> <span style="box-sizing: border-box;color: rgb(86, 182, 194) !important">=></span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">env</span>(<span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'MYSQL_ATTR_SSL_CA'</span>),</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">    ]) : [],</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">],</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span>

我是温新

每天进步一点点,就一点点

请登录后再评论