ホームページ 運用・保守 Docker Dockerコンテナのmysql認証が失敗した場合の対処方法

Dockerコンテナのmysql認証が失敗した場合の対処方法

Apr 18, 2023 am 09:47 AM

近年、Docker コンテナ技術はさまざまなアプリケーション シナリオでますます広く使用されており、軽量かつ迅速な導入と管理方法を提供し、アプリケーションの開発と運用と保守を効率化します。 Docker コンテナ テクノロジを使用すると、コンテナ内での MySQL 認証の失敗など、いくつかの問題が発生する可能性があります。この記事では、この問題を解決する方法について説明します。

Docker コンテナでの MySQL 認証の失敗により、アクセス拒否などの問題が発生する可能性があります。この状況は通常、コンテナ内でユーザー認証が正しく設定されていないことが原因で発生します。 Docker コンテナでは、MySQL ユーザー認証には、パスワード ベースの認証と認証プラグイン ベースの認証という 2 つの主な方法があります。

パスワードベースの認可

パスワードベースの認可では、MySQL ユーザーはコンテナ内でアカウントのパスワードを作成し、外部からコンテナにアクセスするときにこれらの資格情報を認可に使用する必要があります。次の手順に従って MySQL アカウントを作成できます。

  1. Docker コンテナに MySQL サーバーを入力します

まず、コンテナに MySQL サーバーを入力する必要があります。これは、次のコマンドで実行できます。 実装:

docker exec -it mysql-container mysql -u root -p
ログイン後にコピー

このコマンドは、対話型ターミナルを起動し、コンテナ内の MySQL サーバーに接続します。

  1. 新しいユーザーの作成

MySQL ターミナルで、次のコマンドを使用して新しいユーザーを作成できます:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
ログイン後にコピー

Where, 'newuser ' は新しいユーザーのユーザー名、'%' はユーザーが任意の IP アドレスからアクセスできることを意味し、'password' は新しいユーザーのパスワードです。

  1. 新しいユーザーの承認

同様に、MySQL ターミナルで次のコマンドを使用して新しいユーザーを承認できます:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
ログイン後にコピー
ログイン後にコピー

このコマンドは次のことを許可します。新規ユーザー すべてのデータベースとテーブルにアクセスします。

  1. 権限の更新

最後に、変更を有効にするには、権限を更新する必要があります:

FLUSH PRIVILEGES;
ログイン後にコピー
ログイン後にコピー

さて、新しいユーザーです。が正常に作成され、認証されると、ユーザー名とパスワードを使用して MySQL コンテナに外部からアクセスできるようになります。

認証プラグインベースの認可

認証プラグインベースの認可では、MySQL サーバーは、SSL 証明書や Kerberos などの外部認証プラグインをユーザー認証に使用します。 .、より安全にユーザーを認証します。 Docker コンテナでは、次の手順を使用して認証プラグインを設定できます。

  1. プラグインを MySQL コンテナにインストールします

認証プラグインを使用するには、 Docker コンテナ内の MySQL サーバーにプラグインをインストールする必要があります。これは、次の手順に従って実行できます。

docker cp auth_plugin.so mysql-container:/usr/lib/mysql/plugin/
ログイン後にコピー

このコマンドは、プラグイン ファイル auth_plugin.so をコンテナ内の /usr/lib/mysql/plugin/ ディレクトリにコピーします。

  1. プラグインを有効にする

次に、MySQL 構成ファイルでプラグインを有効にする必要があります。構成ファイルは、次のコマンドを使用して変更できます。

docker exec -it mysql-container bash
vi /etc/mysql/my.cnf
ログイン後にコピー

認証プラグインを有効にするセクションで、次の行を追加する必要があります。

[mysqld]
plugin-load = auth_plugin.so
ログイン後にコピー
  1. Create user

MySQL ターミナルでは、プラグインに基づいてユーザーを作成する必要があります。これは次のコマンドで実行できます:

CREATE USER 'newuser'@'%' IDENTIFIED WITH auth_plugin AS 'cred';
ログイン後にコピー

ここで、「newuser」は新しいユーザーのユーザー名、「%」はユーザーが任意の IP アドレスからアクセスできることを意味します。アクセスの場合、「cred」は、プラグインの使用時にユーザーを認証するために使用される認証情報が暗号化された文字列です。

  1. 新しいユーザーの承認

同様に、MySQL ターミナルで、次のコマンドを使用して新しいユーザーを承認する必要があります:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
ログイン後にコピー
ログイン後にコピー

このコマンドこれにより、新しいユーザーにすべてのデータベースとテーブルへのユーザー アクセスが許可されます。

  1. 権限の更新

最後に、権限を更新する必要があります:

FLUSH PRIVILEGES;
ログイン後にコピー
ログイン後にコピー

これで、プラグインベースのユーザーが正常に作成され、承認されました。その資格情報は、外部から MySQL コンテナにアクセスするために使用されます。

概要

Docker コンテナでは、MySQL の認証失敗により、アクセス拒否などの問題が発生する可能性があります。この記事では、パスワードベースの認可と認証プラグインベースの認可という 2 つの MySQL ユーザー認可方法を紹介します。どちらの方法を使用する場合でも、外部からコンテナ内の MySQL サーバーにアクセスするには、ユーザー権限を正しく設定する必要があります。

以上がDockerコンテナのmysql認証が失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Docker execを使用してDockerコンテナでコマンドを実行する方法 Docker execを使用してDockerコンテナでコマンドを実行する方法 Mar 05, 2025 pm 03:42 PM

この記事では、Docker Execコマンドを使用して実行中のDockerコンテナ内でコマンドを実行する方法について説明します。 基本的な構文、オプション(インタラクティブな使用の場合、デタッチされたモード用-Dなど)、シェルアクセス、一般的なユースケース(デバッグ、管理

Dockerとは何ですか? Dockerとは何ですか? Mar 05, 2025 pm 03:49 PM

この記事では、アプリケーションの構築、出荷、およびランニングを簡素化するコンテナ化プラットフォームであるDockerについて説明します。 アプリと依存関係を孤立したコンテナにパッケージ化することにより、「私のマシンで動作する」という問題に対処し、CONを改善します

Dockerは環境またはソフトウェアです Dockerは環境またはソフトウェアです Mar 05, 2025 pm 03:38 PM

この記事では、Dockerを仮想マシンとは対照的に説明しています。 Dockerはコンテナ化を使用し、ホストOSカーネルを軽量でリソース効率の高いアプリケーション分離のために共有します。 重要な利点には、速度、移植性、展開の容易さ、aが含まれます

Docker Swarmクラスターにアプリケーションを展開するにはどうすればよいですか? Docker Swarmクラスターにアプリケーションを展開するにはどうすればよいですか? Mar 17, 2025 pm 04:20 PM

この記事では、プロセス中の準備、展開ステップ、セキュリティ対策をカバーするDocker Swarmへのアプリケーションの展開を詳細に説明します。

Dockerとは何ですか? Dockerとは何ですか? Mar 05, 2025 pm 03:46 PM

Dockerは、コンテナ化を介してアプリケーションの構築、出荷、および実行を簡素化します。 一貫した開発環境、より速いサイクル、コラボレーションの改善、および合理化されたCI/CDを提供し、ポータブル、スケーラブル、およびリソース効率をもたらします

Dockerとは何ですか? Dockerとは何ですか? Mar 05, 2025 pm 03:39 PM

この記事では、アプリケーションの作成、展開、および実行を簡素化するコンテナ化プラットフォームであるDockerについて説明します。 Dockerの利点など、効率の向上、一貫性、リソース利用、合理化された展開を強調しています。 さまざまな用途

Kubernetesでアプリケーションをスケーリングするにはどうすればよいですか? Kubernetesでアプリケーションをスケーリングするにはどうすればよいですか? Mar 17, 2025 pm 04:28 PM

この記事では、手動スケーリング、HPA、VPA、およびCluster Autoscalerを使用してKubernetesのスケーリングアプリケーションについて説明し、スケ​​ーリングを監視および自動化するためのベストプラクティスとツールを提供します。

Kubernetesのポッド、展開、サービスとは何ですか? Kubernetesのポッド、展開、サービスとは何ですか? Mar 17, 2025 pm 04:25 PM

この記事では、Kubernetesのポッド、展開、およびサービスについて説明し、コンテナ化されたアプリケーションの管理における役割について詳しく説明しています。これらのコンポーネントが、アプリケーション内のスケーラビリティ、安定性、および通信をどのように強化するかについて説明します。(159文字)

See all articles