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プロジェクトウォッチで関数が繰り返しトリガーされる問題の解決

目次問題の説明:解決策1解決策2問題の説明:ページ A と B の 2 つがあり、各ページにはget...

Vue は携帯電話の認証コードによるログインを実装します

この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

Vueの監視プロパティの詳細な説明

目次Vue モニターのプロパティリスナープロパティとは何ですか?リスニングプロパティと計算プロパティ...

MySQL マスタースレーブレプリケーション切断の一般的な修復方法

目次01 問題の説明02 ソリューション1. 他のスレーブライブラリを見つけてすぐに置き換える2. ...

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

このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...

Dockerコンテナデータボリュームの原理と使用法の分析

コンテナデータボリュームとはデータがコンテナ内にある場合、コンテナを削除するとデータは失われます。例...

ウェブページコンテンツの閲覧設計手法に関する議論

<br />コンテンツ ページの記事の場合、記事が長すぎる場合やカテゴリ (ランキング)...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

MySQL ルートパスワードをリセットする方法

目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...

Mysqlのインポートとエクスポート時に発生する問題の解決

背景すべての業務を Docker の運用管理に移行してから、一連の落とし穴に遭遇しましたが、今回は ...

CSS で複数の境界線を実装するためのヒント

1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...