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 :
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.
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.
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.
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 :
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.
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
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.
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.
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!