2017-02-08 4 views
0

Laravel 5.4を習得しようとしています。私は、コマンドphp artisan make:authを公開し、php artisan migrate次のエラーが表示されますと、いくつかのデータベーステーブルがgreatedれませんコマンドを発行した後:
make:authの後にLaravelを移行する際のエラー

[照らしなさい\データベース\のQueryException]
SQLSTATE [42000]:構文エラーまたはアクセス違反:1071指定キー が長すぎます。最大キー長は767バイトです(SQL:users はユニークな追加ALTER TABLE users_email_uniqueemail))[PDOException]
SQLSTATE [42000]:構文エラーまたはアクセス違反:1071は が長すぎたキー指定されました。最大キー長が、私は(いくつかの他の列は、英語、スペイン語...文字を含む)Persian Script Fontを持つ文字のコンテナとして一部の列を使用する必要があるという事実については767バイト

ですが、私はutf8_general_ciMySQLデータベースを作成しましたデータベースのエンコーディングのためにエラーが発生したとします。 character encoding LaravelのAuth機能を利用できるようにデータベースを構築するために使用するものを教えてください。事前にどうもありがとうございました。

+1

テキストコンテンツに画像を使用しないでください。 –

+0

@Parantap Parashar:私の間違いを教えてくれてありがとうございました。私はそれを訂正した。 – Tower

答えて

1

SHOW CREATE TABLEを見てみましょう。emailという定義があります。 - > 191(しかし、そうでないことを確認してください

  • 255:

    一方で、私は(それぞれがその欠点を持っている)、それは

    email VARCHAR(255) CHARACTER SET utf8mb4, 
    INDEX(email) 
    

    のように、これらのいずれかを実行し、何かが含まれていることを推測しますそれはUNIQUEまたはある場合> UTF8(それによって、絵文字や中国の一部の文字を許可しない)
  • INDEX(電子メール(20))( - 現在の長いアドレス)
  • utf8mb4を持っています、ではないこのオプションを選択してください)
  • 大きなインデックスを許可するようにサーバーとテーブルを再構成(5.6.3以降)することは可能です。これは5.7.7までは「デフォルト」ではありません。
+0

親愛なる先生、あなたは私を多く助けて、永遠に変わるララベルとその賛否両論で私の一生を救った。私は 'config/database 'を注意深く見ました。あなたは** utf8mb4 **について言及したものを見ました。したがって、 'mysql'設定で' charset'と 'collat​​ion'から' mb4'を削除しました。今はうまく動いています。完全な情報を持っているだけでなく、それを共有し、私たちを助けてくれてありがとう。 – Tower

+0

@Tower - ようこそ。私は、私の「評判」から明らかなように、MySQLの質問に答えるのが楽しいです。私はLaravelについて何も知っていませんが、それはMySQLで物事を難読化しているのを見ている以外です。私はあなたのヒントをヒントのリストに追加しました:http://mysql.rjweb.org/doc.php/charcoll –

+0

@ Rick.James:特にあなたにコメントのWebアドレスを入れてくれてありがとう。ページのリストの右側にあるリストから、私はそこにも多くのアイデアを見つけることができると思います。あなたの幸運を祈ります。 – Tower

1

このエラーは、Laravel 5.4にdocumentedという問題があります。このこの問題が発生し、他人のために

も良い修正です:

  1. あなたapp\Provider\AppServiceProvider.php
  2. 変更を開くことに:再び

    <?php 
    
    namespace App\Providers; 
    
    use Illuminate\Support\Facades\Schema; 
    use Illuminate\Support\ServiceProvider; 
    
    class AppServiceProvider extends ServiceProvider 
    { 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
    Schema::defaultStringLength(191); // 
    } 
    
    /** 
    * Register any application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
    // 
    } 
    } 
    
  3. 実行移行

関連する問題