日: 2024年6月5日

  • Dockerを使ってMySQL 8.0をパスワードなしでローカル接続する

    Dockerを使ってMySQL 8.0をパスワードなしでローカル接続する

    以下の手順で、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

    このコマンドは、以下のことを行います:

    1. mysqlという名前のコンテナを作成
    2. MySQLのルートユーザーのパスワードを空に設定
    3. コンテナをバックグラウンドで実行
    4. ローカルの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サーバーが正しく起動していない場合、ログを確認してエラーメッセージをチェックし、適切な対策を講じてください。