以下の手順で、MySQL 8.0をDockerで起動し、パスワードなしでローカル接続できるように設定する方法を説明します。
手順 1: Dockerコンテナの起動
まず、パスワードなしでMySQLコンテナを起動します。MYSQL_ALLOW_EMPTY_PASSWORD
環境変数をyes
に設定します。
docker run --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d -p 3306:3306 mysql:8.0
このコマンドは、以下のことを行います:
- mysqlという名前のコンテナを作成
- MySQLのルートユーザーのパスワードを空に設定
- コンテナをバックグラウンドで実行
- ローカルの3306ポートをコンテナの3306ポートにマッピング
手順 2: MySQLクライアントで接続
次に、ローカルのMySQLクライアントを使ってMySQLサーバーに接続します。パスワードなしで接続するために、-p
オプションを省略します。
mysql -h 127.0.0.1 -P 3306 -u root
注: mysql のコンテナが立ち上がるまでの間
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2
というエラーが表示されます。その際数秒待って再度接続を試みてください。
トラブルシューティング
コンテナが正しく起動しているか確認:
docker ps -a
コンテナのログを確認:
docker logs mysql
MySQLサーバーが正しく起動していない場合、ログを確認してエラーメッセージをチェックし、適切な対策を講じてください。