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 と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

Docker Composeを使用してDOCleverをインストールする詳細なプロセスを説明します

目次1. Docker Composeとは何か、インストールして使用する方法2. DOCleverと...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

Docker に MySQL をデプロイする例

目次1 コンテナクラウドとは何ですか? 2 Dockerの紹介3 dockerを使ってMySQLをイ...

MySQLインデックスマージの使い方

インデックスのマージは、MySQL が最下層で提供するインテリジェントなアルゴリズムです。インデック...

Linux カーネル デバイス ドライバー 高度な文字デバイス ドライバーのメモ

/****************** * 高度な文字デバイス ドライバー ***********...

Web データ ストレージ: Cookie、UserData、SessionStorage、WebSqlDatabase

クッキーこれはクライアント ブラウザの状態を保存するための標準的な方法です。Cookie はブラウザ...

Dockerコンテナでユーザーを切り替えるときに権限が不足する問題を解決する方法

Docker コンテナでユーザーを切り替えると、権限が不十分であるというメッセージが表示されます。解...

JavaScript排他的思考の具体的な実装

前回のブログで、Xiao Xiong は関連する要素の操作方法を更新しましたが、同じ要素のグループが...

入力が完了したことを検出し、次のコンテンツを自動的に入力する HTML を実装する方法

前回の記事では、入力完了の簡単な検出を実現しましたが、今回はさらに一歩進んで、入力が完了した後に次の...

Vue フィルターの使用とタイムスタンプ変換の問題

目次1. 概念をすぐに認識する: 2. ローカルフィルター: 3. グローバルフィルター: 4. 拡...

webkit-box-reflect を巧みに使用してさまざまな動的効果を実現する (要約)

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

MySQLデータベースホスト127.0.0.1とlocalhostの違い

私の友人の多くは、127.0.0.1 と localhost の違いがわからず、問題に遭遇するかもし...

MySQL はカスタムシーケンスを使用して row_number 関数を実装します (詳細な手順)

いくつかの記事を読んだ後、ようやく MySQL で row_number() ソートを実装する方法が...