【Laradockエラー】laradock_mysql_1 docker-entrypoint.sh mysqld Exit2
※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。
【目次】
背景
Laradockを使ってdockerに環境構築をしています。
途中までは上手くいくのですが、MySQLが思うように立ち上がってくれません。
通常の手順通りに環境構築をすると、MySQLはver8.0をインストールします。
しかし、MySQL8.0は5.7とは違いデフォルトのユーザー認証プラグインが変更になっており、MySQLにアクセスするためにいくつかの作業が必要になります。
私は、その作業が上手くできなかったので、MySQL5.7をインストールすることにしました。
その結果のエラーがタイトルのエラーです。
エラー
laradock_mysql_1 docker-entrypoint.sh mysqld Exit2
今回はこれを解決します。
内容
結論
ネットですぐに出てきました。
以下の参考サイトの通りすれば、問題は解決されました。
参考サイト:
Docker Composeでmysql の書き込みできないエラーが出たときの対処方法 - 気ままに
docker-compose exec mysql bash error · Issue #1173 · laradock/laradock · GitHub
解決方法
mysqlが立ち上がっているか確認
$ docker-compose up mysql
=>laradock_mysql_1 docker-entrypoint.sh mysqld Exit2
と表示される。
ログの確認
$ docker-compose logs mysql
=>[ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
mysql / dataを削除
$ rm -r ~/.laradock
コンテナ削除
$ docker ps -a //コンテナ確認
$ docker rm コンテナIDorNAME //MySQLに関係するコンテナ削除
イメージ削除
$ docker images //イメージ確認
$ docker rmi イメージ名 //MySQLに関係するイメージ削除
volume削除
$ docker volume ls //volume確認
$ docker volume rm VOLUME NAME //MySQLに関係するvolume削除
MySQLの再ビルド
$ docker-compose build --no-cache mysql
Docker立ち上げ
$ docker-compose up -d nginx mysql redis beanstalkd
今後に向けて
とりあえずは、上記でMySQLはUpできたのですが、コンテナ内のMySQLに接続できませんでした。。。
ポートフォリオ作ってた時にも同じエラー起きてたよな〜忘れた笑
早急にエラー解決したいと思います。
エラー
$ mysqld_safe --skip-grant-tables & //通常のやり方ではMySQLに入れなかったため
$ mysql -u root
=>ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
参考
素晴らしい記事に感謝いたします。
Docker Composeでmysql の書き込みできないエラーが出たときの対処方法 - 気ままに
docker-compose exec mysql bash error · Issue #1173 · laradock/laradock · GitHub