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 つの方法

推薦する

Vue.set() と this.$set() の使い方と違い

開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...

Chrome 73 によるフレックスレイアウトの崩れの解析と解決方法

現象プロジェクトにはネストされたフレックス構造がいくつかあります。 <スタイル> /* ...

Mac で MySQL 8.0.22 のパスワードを取得する方法

Mac 最新バージョンの MySQL 8.0.22 パスワード回復問題の説明:昨日、突然、Macで最...

Harborを使用してプライベートDockerリポジトリを構築する方法

目次1. オープンソースの倉庫管理ツール Harbor 2 インストール2.1 DockerとDoc...

円形/扇形メニューを2分で実装する方法を教えます(基本バージョン)

序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...

TS 数値区切り文字とより厳密なクラス属性チェックの詳細な説明

目次概要演算子の改良と正確なinstanceofよりスマートなオブジェクトリテラル推論固有のシンボル...

Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

1. Dockerはローカルイメージをインポートする場合によっては、イメージをローカルまたは別の友人...

フレックスレイアウトは、上下固定、中間スライドのレイアウトモードを実現します。

この記事では、主に、上下固定と中スライドレイアウトを実現するためのフレックスレイアウトのレイアウト方...

CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

Centos6.4 で mysql5.7.18 をインストールするための具体的な手順が全員に共有され...

offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft などのプロパティの図。

注 1: 上の画像の背景全体がこの Web ページのフルサイズであり、中央の小さなボックスがブラウザ...

クラウドサーバーパゴダパネルの詳細なインストール手順

目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...

vsftpdで仮想ユーザーログインを設定する方法

yum で vsftpd をインストールします [root@localhost など]# yum -...

js配列の基本的な使い方のまとめ

序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...

読み込み進捗バーのネイティブ JS 実装

この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...

MySQL でのインデックスの追加と削除に関連する操作

目次1. インデックスの役割2. インデックスの作成と削除(1)ALTER TABLE文を使用して、...