MySQLを5.7にする(Laravel migrate SQLSTATE[42000] 問題を解決)
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