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

推薦する

MacにMySQLをインストールするときに初期パスワードを忘れた場合の対処方法

パスワードを忘れると困ります。Mac に MySQL をインストールするための初期パスワードを忘れて...

フローティングをクリアするいくつかの方法(推奨)

1. 同じタイプの空の要素を追加し、要素の CSS 属性 clear:both; を設定します。 ...

IE8 と Chrome でテーブルの幅を修正する方法

IE8 や Chrome で上記の設定を使用すると、画面の最大幅に合わせて表示が統一され、各列の幅は...

Linux でファイル権限を変更する chmod コマンドの詳細な分析

Linux chmodコマンドを使用して、ターゲット ファイルにアクセス、読み取り、書き込み、または...

Ubuntu環境でのSSHの詳細なインストールと使用

SSH は Secure Shell の略で、安全な伝送プロトコルです。Ubuntu クライアントは...

CSS3.0 でネオンボタンアニメーション効果を実装するためのサンプルコード

今日は、CSS 3.0 で実装されたネオン ボタン アニメーション効果を紹介します。効果は次のとおり...

Ubuntu 20.04でLNMP環境を構築する方法

簡単な説明以前 Centos7 で構築し、その後個人開発環境として Ubuntu 20.04 を使っ...

Tomcat 経由で JMX 監視を有効にする方法

シミュレーション環境を構築する:オペレーティングシステム: centos7メモリ: 1G 1.8.0...

vscode dockerプラグインのdocker.socket権限問題を解決する

解決策: システム内のすべての .vscode 関連プロセスを終了します (または、remote-s...

HTML 編集の基礎 (初心者必読)

DREAMWEAVER を開き、新しい HTML を作成します。 。ボディの特性: bgcolor...

Vueは動的に生成されたコンポーネントをドラッグアンドドロップする要件を実装します

目次製品要件アイデア問題ライブラリ選択をドラッグコンポーネントを生成する方法コンポーネントを生成する...

Centos7.3 で mysql5.7.18 をインストールして初期パスワードを変更する方法

この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...

DockerはClickHouseをインストールし、データテストを初期化します

クリックハウスの紹介ClickHouse は、SQL クエリを使用して分析データ レポートをリアルタ...

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

Nginx キャッシュ設定例

Web アプリケーションの開発とデバッグを行う際には、テストのためにブラウザのキャッシュをクリアした...