大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があれば、コメント頂けると幸いです。

【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