ホストから Docker コンテナ内の MySQL に接続する
問題の説明:
の場合Docker コンテナ内で実行されている MySQL データベースにホスト マシンから接続しようとすると、次のエラー メッセージが表示されます。 「ソケット '/var/run/mysqld/mysqld.sock' を介してローカル MySQL サーバーに接続できません。」
Dockerfile:
次の Dockerfile が使用されますMySQL コンテナの作成:
FROM ubuntu:14.04.3 RUN apt-get update && apt-get install -y mysql-server RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf EXPOSE 3306 CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log
失敗試行:
コンテナ内で MySQL インスタンスが正常に起動したにもかかわらず、mysql -P 12345 -uroot を使用してホストからインスタンスに接続すると、ソケット エラーが発生します。
解決策:
Docker コンテナ内で実行されている MySQL データベースに接続するには、
ホスト接続のコマンド:
mysql -h localhost -P 3306 --protocol=tcp -u root
ポートの変更:
異なる場合ポートは、Docker コンテナ内で MySQL インスタンスを公開するために使用されます (例: 12345)。接続コマンドでも指定する必要があります:
mysql -h localhost -P 12345 --protocol=tcp -u root
以上がホスト マシンから Docker 化された MySQL インスタンスに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。