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 における楽観的ロック、悲観的ロック、MVCC の包括的な分析

序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...

MySQL DATEDIFF 関数を使用して 2 つの日付間の時間間隔を取得する方法

説明する2 つの日付間の時間間隔を返します。文法DateDiff(間隔、日付1、日付2 [、週の最初...

MySQLのユーザー管理とPostgreSQLのユーザー管理の違い

1. MySQL ユーザー管理[例1.1] ローカルMySQLサーバーのテストデータベースにroot...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Linux ソースコードからのソケット (TCP) バインドの詳細な説明

目次1. 最も単純なサーバー側の例2. バインドシステムコール2.1、inet_bind 2.2、i...

crontab の実行結果を電子メールでユーザーに通知する方法

症状Centos7 ホストに crontab タスクを設定しましたが、時間が来るとメールを実行して「...

JSX を使用してマークアップ コンポーネント スタイルの開発を作成する例 (フロントエンドのコンポーネント化)

目次JSX環境の構築NPMを初期化するwebpackをインストールするBabelをインストールするw...

React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

目次フロントエンド上記のアイデアに従って、ページめくり機能を設計して記述します。バックエンド(Jav...

UbuntuでMySQLデータベースファイルディレクトリを変更する方法

序文同社の Ubuntu サーバーは、さまざまなシステムのディレクトリを異なる論理パーティションに配...

HTML Webページの例を使用してヘッドエリアコードの意味を説明する

例を使って、Webページのヘッダー情報の意味を理解しましょう。 <!DOCTYPE HTML ...

広告を閉じるための JavaScript カウントダウン

広告を閉じるまでのカウントダウンを実装するために JavaScript を使用するまだフロントエンド...

Webデザイナーの成長体験

<br />まず最初に、私はこのグループの中では完全な新人だということを述べなければなり...

サーバーのDockerコンテナへのvscodeリモート接続を設定する方法

目次画像をプルするイメージを実行する(コンテナを生成する)コンテナを起動するコンテナに入るすべてのミ...

MySQL 8.0.17 解凍版のインストールと設定方法のグラフィックチュートリアル

インストール中に遭遇した問題を記録しておきますので、皆様のお役に立てれば幸いです。 1. ダウンロー...

Linux で ffmpeg をインストールするための詳細なチュートリアル

1. CentOS Linuxにffmpegをインストールする1.ダウンロードして解凍する http...