現役プログラマのWordPressカスタマイズ相談

WordPress(ワードプレス)のお悩み、うまくいかなくてお困りなこと、不具合調査、新規制作依頼まで、ウェブアプリケーションエンジニアがあなたをサポートします。

MySQLを5.7にする(Laravel migrate SQLSTATE[42000] 問題を解決)

f:id:jsaz:20190324161723p:plain:w480

laravelでマイグレーションすると良く起きる問題。

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

原因はmysqlの charaset が utf8mb4 だから。

参考: Laravel5.4以上、MySQL5.7.7未満 でusersテーブルのマイグレーションを実行すると Syntax error が発生する - Qiita

では対処方は?

私は「MySQL5.7にあげる」!

簡単な1つの方法をご紹介

このままの手順でうまくいく!(はず)

How To Install MySQL on Ubuntu 14.04 | DigitalOcean

Installing MySQL 5.7

$ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb

Install it using dpkg

$ sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb

青い画面が出てくるので5.7を選択する

参考: Upgrade MySQL 5.5 to MySQL 5.7 – Mkyong.com

Update your package index

$ sudo apt-get update

Install the mysql-server package

$ sudo apt-get install mysql-server

ちゃんとアップデートできているか確認

$ mysql --version

mysql 5.7と表示されていればOK