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

推薦する

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

Dockerコンテナでは、イメージを簡素化してサイズを縮小する方法を詳しく説明しています

目次1.画像レイヤーの数を減らす1. 命令の統合2. 多段階ビルド3. スクワッシュ機能を有効にする...

Windows で Graphviz をインストールして開始する方法のチュートリアル

ダウンロードとインストール環境変数の設定インストール環境変数の設定確認基本的な描画の紹介グラフディグ...

要素内の TimePicker は時間の一部を無効にします (分単位で無効)

プロジェクトの要件は、日付と時刻を選択し、現在の時刻以降の時刻のみを選択し、最小レベルを分単位で無効...

Docker x509 の安全でないレジストリ問題を解決する

Docker をインストールした後、会社が構築したプライベート サーバー Harbor からプルしよ...

js を使用して画像をモザイク化する方法の例

この記事では、主に js を使用して画像をモザイク化する方法の例を紹介し、次のように共有します。効果...

HarborをベースにしたDocker専用倉庫の構築方法

目次1. ハーバーの紹介1. ハーバーが民間倉庫を建設3. 港湾の維持管理4. Harborユーザー...

選択ドロップダウンボックスの値をIDに渡してコードを実装する方法

完全なコードは次のとおりです。 HTMLコード:コードをコピーコードは次のとおりです。 <!-...

Vue での bimface の使用に関する詳細

目次1. Vue スキャフォールディングをインストールする2. プロジェクトを作成する3.1 プロジ...

Windows 10 で MySQL をダウンロードするための詳細なチュートリアル

MySQL のバージョンは、Enterprise Edition と Community Editi...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

データ URI スキームを使用して Web ページに画像を埋め込む方法の紹介

データ URI スキームを使用すると、HTML、CSS、Javascript などで使用できるインラ...

mysql はフィールドコンテンツの一部を置き換え、mysql は関数 replace() を置き換えます。

[mysql] replace の使用方法 (フィールドの内容の一部を置き換える) [mysql]...

v-html レンダリング コンポーネントの問題

以前 HTML を解析したことがあるので、今日は Vue ドラッグ アンド ドロップを使用して、Ku...

Linux システムコマンドのメモ

この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...