Maison  >  Article  >  Opération et maintenance  >  Que faire si l'autorisation MySQL du conteneur Docker échoue

Que faire si l'autorisation MySQL du conteneur Docker échoue

PHPz
PHPzoriginal
2023-04-18 09:47:07749parcourir

Ces dernières années, la technologie des conteneurs Docker a été de plus en plus largement utilisée dans divers scénarios d'application. Elle fournit une méthode de déploiement et de gestion légère et rapide, rendant le développement, l'exploitation et la maintenance d'applications plus efficaces. Lors de l'utilisation de la technologie de conteneur Docker, nous pouvons rencontrer certains problèmes, tels qu'un échec d'autorisation MySQL dans le conteneur. Cet article explique comment résoudre ce problème.

L'échec de l'autorisation MySQL dans un conteneur Docker peut entraîner des problèmes tels qu'un refus d'accès. Cette situation est généralement due au fait que l'autorisation de l'utilisateur n'est pas correctement définie dans le conteneur. Dans les conteneurs Docker, il existe deux méthodes principales pour l'autorisation des utilisateurs MySQL : l'autorisation par mot de passe et l'autorisation par plug-in d'authentification.

Autorisation basée sur un mot de passe

Dans l'autorisation basée sur un mot de passe, les utilisateurs MySQL doivent créer un mot de passe de compte dans le conteneur et utiliser ces informations d'identification pour l'autorisation lorsqu'ils accèdent au conteneur de l'extérieur. Un compte MySQL peut être créé en suivant ces étapes :

  1. Entrez le serveur MySQL dans le conteneur Docker

Tout d'abord, nous devons entrer le serveur MySQL dans le conteneur, cela peut être réalisé avec la commande suivante :

docker exec -it mysql-container mysql -u root -p

Cette commande démarrera un terminal interactif et se connectera au serveur MySQL dans le conteneur.

  1. Créer un nouvel utilisateur

Dans le terminal MySQL, vous pouvez créer un nouvel utilisateur en utilisant la commande suivante :

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

où 'newuser' est le nom d'utilisateur du nouvel utilisateur et '%' signifie que l'utilisateur peut être accessible à partir de n'importe quelle adresse IP, « mot de passe » est le mot de passe du nouvel utilisateur.

  1. Autoriser les nouveaux utilisateurs

De même, dans le terminal MySQL, vous pouvez autoriser de nouveaux utilisateurs à l'aide de la commande suivante :

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

Cette commande accordera au nouvel utilisateur l'accès à toutes les bases de données et tables.

  1. Actualiser les autorisations

Enfin, pour que les modifications prennent effet, nous devons actualiser les autorisations :

FLUSH PRIVILEGES;

Maintenant, le nouvel utilisateur a été créé avec succès et autorisé à accéder au conteneur MySQL de l'extérieur en utilisant son nom d'utilisateur et mot de passe.

Autorisation basée sur un plugin d'authentification

Dans l'autorisation basée sur un plugin d'authentification, le serveur MySQL utilise des plugins d'authentification externes pour l'authentification des utilisateurs, tels que l'utilisation de certificats SSL, Kerberos, etc., pour authentifier les utilisateurs de manière plus sécurisée. Dans un conteneur Docker, le plugin d'authentification peut être configuré en suivant les étapes suivantes :

  1. Installez le plugin dans le conteneur MySQL

Afin d'utiliser le plugin d'authentification, nous devons installer le plugin dans le serveur MySQL dans le Conteneur Docker. Cela peut être réalisé en suivant ces étapes :

docker cp auth_plugin.so mysql-container:/usr/lib/mysql/plugin/

Cette commande copie le fichier du plugin auth_plugin.so dans le répertoire /usr/lib/mysql/plugin/ du conteneur.

  1. Activer le plugin

Ensuite, nous devons activer le plugin dans le fichier de configuration MySQL. Le fichier de configuration peut être modifié avec la commande suivante :

docker exec -it mysql-container bash
vi /etc/mysql/my.cnf

Dans la section qui active le plugin d'authentification, vous devez ajouter la ligne suivante :

[mysqld]
plugin-load = auth_plugin.so
  1. Create user

Dans le terminal MySQL, nous devons créer un utilisateur basé sur le plugin, cela peut être fait via La commande suivante est implémentée :

CREATE USER 'newuser'@'%' IDENTIFIED WITH auth_plugin AS 'cred';

où 'newuser' est le nom d'utilisateur du nouvel utilisateur, '%' signifie que l'utilisateur est accessible depuis n'importe quelle adresse IP, et 'cred ' est une chaîne cryptée d'informations d'identification utilisée pour la vérification lors de l'utilisation du plugin par l'utilisateur.

  1. Autoriser le nouvel utilisateur

De même, dans le terminal MySQL, nous devons autoriser le nouvel utilisateur à l'aide de la commande suivante :

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

Cette commande accordera au nouvel utilisateur l'accès à toutes les bases de données et tables.

  1. Actualiser les autorisations

Enfin, nous devons actualiser les autorisations :

FLUSH PRIVILEGES;

Maintenant, l'utilisateur basé sur le plugin a été créé et autorisé avec succès, et peut accéder au conteneur MySQL de l'extérieur en utilisant ses informations d'identification.

Résumé

Dans un conteneur Docker, l'échec de l'autorisation MySQL peut entraîner des problèmes tels qu'un refus d'accès. Cet article présente deux méthodes d'autorisation des utilisateurs MySQL : l'autorisation par mot de passe et l'autorisation par plug-in d'authentification. Quelle que soit la méthode utilisée, l'autorisation de l'utilisateur doit être correctement configurée pour accéder au serveur MySQL dans le conteneur depuis l'extérieur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn