ホームページ > データベース > mysql チュートリアル > ホスト マシンから Docker MySQL コンテナに接続するにはどうすればよいですか?

ホスト マシンから Docker MySQL コンテナに接続するにはどうすればよいですか?

DDD
リリース: 2024-12-02 12:01:10
オリジナル
861 人が閲覧しました

How Do I Connect to a Docker MySQL Container from My Host Machine?

ホストから Docker MySQL コンテナへの接続

問題:

内で実行されている MySQL インスタンスへの接続の確立ホスト システムからの Docker コンテナが失敗したことが判明し、エラーが発生しました2002.

Dockerfile 詳細:

使用される Dockerfile には次の構成が含まれます:

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 -P 12345 -uroot を使用すると、前述の結果が得られます。エラー。

解決策:

接続仕様:

Docker コンテナ内の MySQL インスタンスに接続するには、次のようにします。から mysql コマンドを呼び出すときに正しいパラメータを指定するために必要です。 host:

mysql -h localhost -P 3306 --protocol=tcp -u root
ログイン後にコピー

ここで、-h localhost はホストを指定し、-P 3306 はポート (この場合は 12345) を指定し、--protocol=tcp は TCP/ 経由で接続を確立する必要があることを示します。ソケット接続ではなく IP。

ソケット制限事項:

Docker コンテナ内では、MySQL は localhost を除くすべてのネットワーク インターフェイスにバインドします。ホスト システムはソケットにアクセスできないため、通信には TCP/IP を使用することが必須です。 mysql コマンドで --protocol=tcp を指定すると、ポート 3306 経由で接続が正常に確立されます。

以上がホスト マシンから Docker MySQL コンテナに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート