はじめに
サーバーにデプロイして
./vendor/bin/sail artisan migrate
を実行し、テーブル作成できました。
。。。が、次の日やったら
SQLSTATE[HY000] [1130] Host 'IPアドレス' is not allowed to connect to this MySQL server ...
なにも触ってないのになんで?と思いましたが
いろいろ記事を漁ったら、同じ人がいて対策も書いてくださって助かりました。
初めてこのようなエラーになった方向けにも書いています。
今までDBにアクセスできていたのにできなくなった人は。。。
docker-compose down --volumes
上記のコマンドでSQLのコンテナの初期化、コンテナ壊す。
これでもう一度立ちあげて
./vendor/bin/sail up -d
コンテナが立ち上がったら
./vendor/bin/sail artisan migrate
コンテナが完全に対上がる前にmigrateを実行すると以下のエラーが発生する。
SQLSTATE[HY000] [2002] Connection refused ...
コンテナの初期化を挟むだけで解決できるかと思います!
はじめてmigrateやるんだけど同じエラー。。。
これは許可を与えていないユーザーがアクセスしてきているから。
mysql:
image: 'mysql/mysql-server:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 1
上記のdockr-compose.ymlファイルのMYSQL_ROOT_HOSTに%を設定して rootユーザーでmigrateを実行する。
rootユーザーになるコマンド ↓
su
もしくは
sudo su