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

推薦する

MySQLのジョイントクエリについて詳しく説明します

目次ユニオンクエリ1. 中国の各省のIDと名前を照会する2. 湖南省のすべての地級市のIDと名称3....

React イベントバインディングの詳細

目次クラスコンポーネントイベントバインディング関数コンポーネントイベントバインディング要約するRea...

Linux telnetコマンドの使用

1. はじめにtelnet コマンドは、リモート ホストにログインするために使用されます。これは、T...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

Vueのトランジションとアニメーションの深い理解

1. DOM要素を挿入、更新、または削除するときに、適切な場合は要素にスタイルクラス名を追加します。...

Centos7 システム上の nginx サーバーで Phalcon 環境を構築する方法の詳細な説明

この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...

JSは賞金の重さに基づいて当選確率を計算します

目次1. シナリオ例1.1. 抽選の賞品名を設定する1.2. 各賞の重みを設定する1.3. ラッキー...

Vue3+Vantコンポーネントを使用してアプリの検索履歴機能を実装する(サンプルコード)

現在、新しいアプリプロジェクトを開発中です。私にとっても初めてのアプリ開発です。チームで調査と検討を...

Docker nginxのインストールと設定方法

DockerでNginxイメージをダウンロードする docker プル nginx Docker イ...

Linux calコマンドの使用

1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...

ドロップダウンボックス選択コンポーネントを実装するためのネイティブ js

この記事の例では、ドロップダウンボックス選択コンポーネントを実装するためのjsの具体的なコードを参考...

CSS を使用してマウスをホバーすることで他のタグのスタイルを変更するサンプルコード

序文:私の知る限り、現在 CSS で制御できるのは、タグをホバーしたときにそのタグの下の兄弟タグとサ...

Tomcatの全体構造の簡単な紹介

Tomcat は Web コンテナとして広く知られています。Java を学び始めたときから現在の仕事...

CSS3 フレックスボックス自動記入の書き方を詳しく解説

この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...