Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

画像をプルする

docker プル mysql

完成した画像を見る

Docker イメージ

イメージを介してMySQLコンテナを作成して起動する

docker run --name mysql_dev -e MYSQL_ROOT_PASSWORD=123456 -p 3333:3306 -d mysql

–name: 新しく作成したコンテナに名前を付けます。ここではmysql_devとします。
-e: 設定情報。ここではmysqlルートユーザーのログインパスワードを設定します。
-p: ポートマッピング。ここではホストポート3333をコンテナのmysql_devポート3306にマッピングします。
-d: コンテナの起動に成功した後、コンテナの完全なIDを出力します\最後のmysqlはmysqlイメージ名を参照します

この時点で、navicat for mysql を使用して mysql に接続し、エラーを見つけます。
クライアントはサーバーが要求した認証プロトコルをサポートしていません。 。 。
一番下で解いてください^_^

インストールされているすべてのコンテナを表示

ドッカーps -a

起動したコンテナを表示する

ドッカーps

コンテナ内のサービスを停止/開始する

docker 停止 mysql_dev
docker で mysql_dev を起動します

コンテナに入る

docker exec -it mysql_dev bash

コンテナ内のサービスのIPアドレスを表示する

docker exec -it mysql_dev cat /etc/hosts

MySQL の新しいバージョンでは、ユーザーを認証するときにエラーが報告されます: 1 行目の「IDENTIFIED BY 'password' with grant option」付近

質問1:

データベースの「ユーザー名」@「アクセスホスト」に「パスワード」で識別される権限付与リストを使用すると、「行 1 の「パスワードで識別される」の近く」というエラーが表示されます。

2つの理由:

MySQLの新バージョンではアカウントの作成方法と権限付与方法が分離されているため

3つの解決策:

アカウントを作成します: 'ユーザー名'@'アクセス ホスト' ('パスワード' で識別) を作成します。
権限の付与: データベースの権限リストを 'ユーザー名'@'アクセス ホスト' に付与します (権限を変更するときは、最後に付与オプションを追加します)

4 具体的な操作:

# ユーザーを追加 CREATE USER 'mysql_dev' IDENTIFIED BY '123456';
# 権限を付与する GRANT ALL PRIVILEGES ON *.* TO 'mysql_dev'@'%';
# 暗号化ルールを変更する ALTER USER 'mysql_dev'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
# ユーザーのパスワードを更新します ALTER USER 'mysql_dev'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 設定情報を更新します FLUSH PRIVILEGES;

以上がDockerでMySQLをインストールし、リモート接続を実現するチュートリアルの詳細です。DockerでMySQLをインストールし、リモート接続を実現する方法の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

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

<<:  MySQLデッドロックの原因と解決策

>>:  MySQL が重複データを挿入するのを防ぐ 3 つの方法

推薦する

フロントエンドページのスライド検証を実装するための JavaScript + HTML (2)

この記事の例では、クールなフロントエンドページのスライド検証の具体的なコードを参考までに共有していま...

Debian 9 システムに MySQL データベースをインストールする方法

序文タイトルを見ると、誰もが「Debian 9 に MySQL をインストールするにはどうすればいい...

Linux学習におけるmkdirコマンドの詳しい説明

目次序文1. ファイルの概念に関する基礎知識2. mkdir コマンド序文最近、Linux にますま...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

HTML印刷関連の操作と実装の詳細な説明

原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...

Linux システムで tcpdump を使用してパケットをキャプチャする方法

まずサンプルコードを見てみましょう: 1. 共通パラメータ tcpdump -i eth0 -nn ...

JavaScript は setTimeout を使用してカウントダウン効果を実現します

JavaScript ネイティブ コードの記述能力を高め、setTimeout() の使用を強化する...

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

目次CentOS 8にDockerをインストールする1. yumを更新する2. containerd...

MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明

取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

MySQL の count 関数の正しい使い方の詳細な説明

1. 説明MySQLでは、テーブル内の行の総数を取得する必要がある場合、通常は次の文を使用します。 ...

VMware IOInsight を使用して、仮想マシンのストレージ パフォーマンスの監視を改良する

例: VMware IOInsight は、VM のストレージ I/O 動作を理解するのに役立つツー...

Mysqlマスタースレーブ同期の実装原理

1. MySQL マスター/スレーブ同期とは何ですか?マスター データベースのデータが変更されると、...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...