Maison > Article > base de données > Comment changer le mot de passe du compte root et accorder des autorisations dans Docker MySQL
Après vous être connecté au serveur Linux CentOs
docker ps //查看docker镜像
Entrez l'image mysql
docker exec -it 镜像id或者镜像别名 /bin/bash //进入docker内部镜像
Parce que l'image Docker ne contient pas la commande vim, vous devez l'installer manuellement , ou vous pouvez utiliser la commande docker cp Copiez-le depuis l'hôte
apt-get update apt-get install vim
Modifiez le fichier de configuration
vim /etc/mysql/mysql.conf.d/mysqld.cnf
Vous devez ajouter "skip-grant-tables" Appuyez sur i "cv" pour ajouter "skip-grant-tables" Appuyez sur ESC alors: wq!
Enregistrer et exiter
exit # 退出容器
restart le conteneur mysql
docker restart mysql
enter le conteneur à nouveau
docker exec -it mysql bash
log dans MySQL (aucun mot de passe requis)
mysql -uroot
update permis
rreeechange mot de passe
flush privileges;
Quittez mysql
alter user 'root'@'localhost' identified by '123456';
Commentez "skip-grant-tables"
Commentaire requis"skip-grant-tables” Appuyez sur i Appuyez sur esc Puis : wq!
Quittez le conteneur
exit
Redémarrez le conteneur
exit
Si interne l'accès est disponible mais Navicat ne peut pas y accéder, puis exécutez pour ouvrir les autorisations MySQL
Erreur : ERREUR 1130 : L'hôte 'ip' n'est pas autorisé à se connecter à ce service MySQL
Raison : Les données connectées ne sont pas accessibles via IP, uniquement localhost est autorisé ;
Entrez dans le miroir mysql
docker restart mysql
Connectez-vous à mysql
docker exec -it 镜像id或者镜像别名 /bin/bash //进入docker内部镜像
mysql -u root -p 输入刚刚修改的密码
Si cela ne fonctionne toujours pas, alors il existe des autorisations de mise à jour pour plusieurs autorisations root
mettre à jour le mot de passe défini par l'utilisateur = mot de passe("root") où user="root"; Si l'identifiant de la clé primaire est déjà signalé
puis supprimez localhost
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!