Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました

Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました

MySQLへの接続

ここでは、リモート接続に navicat を使用します。MySQL に接続する前に、ファイアウォール ポートを開くか、ファイアウォールを閉じる必要があります。

開いているポート

ファイアウォールコマンド --add-port=3306/tcp --permanent
// --permanent は永続的に有効です。このパラメータを指定しないと、再起動後に無効になります。
ファイアウォール-cmd --reload
// リロード

ファイアウォールをオフにする

systemctl 停止 ファイアウォール
systemctl iptables を有効にする
// ブートをセットアップする
ファイアウォール-cmd --reload
// リロード

ファイアウォールの基本的な使い方

開始: systemctl start firewalld

シャットダウンするには: systemctl stop firewalld

ステータスを確認します: systemctl status firewalld

起動時に無効にする: systemctl disable firewalld

起動時に有効にする: systemctl enable firewalld

Systemctl は CentOS7 のサービス管理ツールのメインツールであり、以前のサービスと chkconfig の機能を統合します。

サービスを開始します: systemctl start firewalld.service

サービスをシャットダウンする: systemctl stop firewalld.service

サービスを再起動する: systemctl restart firewalld.service

サービスのステータスを表示します: systemctl status firewalld.service

起動時にサービスを有効にする: systemctl enable firewalld.service

起動時にサービスを無効にする: systemctl disable firewalld.service

systemctl is-enabled firewalld.service

有効なサービスのリストを表示します: systemctl list-unit-files|grep enabled

起動に失敗したサービスのリストを表示します: systemctl --failed

ファイアウォールd-cmdを設定する

バージョンを確認する: firewall-cmd --version

ヘルプを表示: firewall-cmd --help

ステータスを表示: firewall-cmd --state

開いているポートをすべて表示: firewall-cmd --zone=public --list-ports

ファイアウォールルールを更新: firewall-cmd --reload

ゾーン情報の表示: firewall-cmd --get-active-zones -zones

firewall-cmd --get-zone-of-interface=eth0

すべてのパケットを拒否: firewall-cmd --panic-on

拒否状態を解除する: firewall-cmd --panic-off

拒否されているかどうかを確認します: firewall-cmd --query-panic

補足: Docker デプロイメント mysql リモート接続ソリューション 1251

理由:

MySQL 8.0 ではデフォルトで caching_sha2_password 認証メカニズムが使用され、クライアントは新しい暗号化方式をサポートしていません。

解決:

ユーザー(ルート)の暗号化方式を変更する

ステップ:

1. MySQLコンテナに入る

[root@localhost ~]# docker exec -it javakfmysql bash ## javakfmysql はコンテナのエイリアスです。代わりにコンテナ ID を使用することもできます。

2. mysqlにログインする

ルート@e285125c99d6:/#mysql -u ルート -p

3. ユーザー設定項目を設定する

ユーザー情報を表示

mysql> mysql.user からホスト、ユーザー、プラグイン、認証文字列を選択します。 
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+
| ホスト | ユーザー | プラグイン | 認証文字列 |
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+
| % | ルート | caching_sha2_password | $A$005$HF7;krfwhkKHp5fPenQm4J2dm/RJtbbyjtCUVdDCcboXQw3ALxsif/sS1 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$これは無効な SALTAND パスワードの組み合わせであり、決して使用してはいけません |
| localhost | mysql.session | caching_sha2_password | $A$005$これは無効なSALTANDPASSWORDTの組み合わせであり、決して使用してはいけません |
| localhost | mysql.sys | caching_sha2_password | $A$005$これは無効な SALTAND パスワードの組み合わせであり、決して使用してはいけません |
| ローカルホスト | ルート | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+

注: ホストは % で、IP アドレスに制限がないことを意味します。localhost は、ローカル マシンが mysql_native_password 以外のプラグインを使用することを意味します。

暗号化方式を変更する

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ### 123456 mysql ログイン パスワード フラッシュ権限;

次にユーザー情報を確認します

mysql> mysql.user からホスト、ユーザー、プラグイン、認証文字列を選択します。
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+
| ホスト | ユーザー | プラグイン | 認証文字列 |
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+
| % | ルート | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$これは無効な SALTAND パスワードの組み合わせであり、決して使用してはいけません |
| localhost | mysql.session | caching_sha2_password | $A$005$これは無効な SALTANDPASSWORDT の組み合わせであり、決して使用してはいけません |
| localhost | mysql.sys | caching_sha2_password | $A$005$これは無効な SALTAND パスワードの組み合わせであり、決して使用してはいけません |
| ローカルホスト | ルート | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+------------------------+------------------------------------------------------------------------------------+
セット内の行数は 5 です (0.00 秒)

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerは安全なTLSリモート接続アクセスを可能にします
  • サーバーのDockerコンテナへのvscodeリモート接続を設定する方法
  • TLS暗号化通信を使用してDockerにリモート接続する詳細な例
  • Docker で MySQL をインストールし、リモート接続を実装するチュートリアル
  • Docker はリモート接続のサンプルコードを実現するために MySQL をデプロイします
  • dockerデーモンのリモート接続設定の詳しい説明
  • Dockerリモート接続設定の実装例

<<:  CSS を使用して複数の方法で等幅レイアウトを実装するサンプルコード

>>:  Vue から React への変換入門ガイド

推薦する

Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)

序文Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docke...

HTML ul 順序なしテーブルのアプリケーションネスト

順序なしリストのアプリケーションネストコードをコピーコードは次のとおりです。 <!DOCTYP...

Elementはスクリプトを使用して新しいコンポーネントを自動的に構築します

目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...

中国語と英語のフォント名の比較表(FounderとArphicを含む)

CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...

CSS3 天子グリッドリストのスタイルの書き方

多くのプロジェクトでは、中央に灰色の分割線があり、両側に分割線がないグリッド表示の機能を実装する必要...

React Hooksの詳細な説明

目次フックとは何ですか?クラスコンポーネント機能コンポーネントフックが作られた理由要約するフックとは...

HTML における水平および垂直の中央揃え方法の詳細な説明 (基礎)

序文馬を書いていたとき、水平方向と垂直方向の中央揃えの方法について、誰もあまり知らなかったと思います...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

海外の無料写真素材サイトベスト9

良い画像素材のウェブサイトを見つけるのは難しいです。特に無料です。良い写真には非常に目を引く視覚効果...

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

Docker共通コマンドの詳しい解説 Study03

目次1. ヘルプコマンド2. ミラーコマンド3. コンテナコマンド1. ヘルプコマンド1. 現在のD...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

bodyタグの主な属性の概要

bgcolor="テキストの色" background="背景画像&q...