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 への変換入門ガイド

推薦する

CentOS の起動時に RabbitMq ソフトウェアを自動的に起動する方法

1. /etc/init.dディレクトリに新しいrabbitmqを作成します。 [root@loca...

Vueは水平の斜めの棒グラフを実装します

この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...

vscodeカスタムvueテンプレートの実装

vscode エディタを使用して vue テンプレートを作成すると、新しい vue ファイルを作成す...

MySQL 最適化 query_cache_limit パラメータの説明

クエリキャッシュ制限query_cache_limit は、単一のクエリで使用できるバッファ サイズ...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

React Native APPのアップデートに関する簡単な説明

目次アプリ更新プロセス大まかなフローチャートアプリ情報の更新1. まず取得する必要があるファイルアド...

jQueryはシャトルボックス機能を実現する

この記事では、シャトルボックス機能を実現するためのjQueryの具体的なコードを参考までに紹介します...

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

Linux サーバーと Windows システム間でファイルをアップロードおよびダウンロードする方法

背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

Linux サーバーは最大いくつのポートを開くことができますか?

目次ポート関連の概念:ポートとサービスの関係1: nmapツールが開いているポートを検出する2: n...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

Msyql トランザクション分離について知っておくべきこと

トランザクションとは何ですか?トランザクションは、データベース管理システムの実行プロセスにおける論理...

dns-prefetch とは何ですか? フロントエンドの最適化: DNS の事前解決によりページ速度が向上します

目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...