Tout à coup, mon serveur MySQL 5.5 local a cessé de fonctionner sur mon Windows XP SP3.
J'ai également installé WAMP Apache et WAMP MySQL, mais WAMP MySQL ne fonctionne pas. Le journal des erreurs indique:
- Impossible de démarrer le serveur: liaison sur le port TCP / IP: aucun fichier ou répertoire de ce type
- Avez-vous déjà un autre serveur mysqld en cours d'exécution sur le port: 3306?
J'ai essayé de changer le port de 3306 à 3307, mais le service ne démarre toujours pas, ce qui donne une erreur:
L'Observateur d'événements affiche:
- Erreur fatale: impossible d'ouvrir et de verrouiller les tables de privilèges: la table 'mysql.host' n'existe pas
- Impossible d'ouvrir la table mysql.plugin. Veuillez exécuter mysql_upgrade pour le créer.
Apparemment, je ne peux exécuter mysql_upgrade que si le serveur fonctionne. Comment puis-je créer 'mysql.host' si le service ne peut pas être démarré?
J'ai désinstallé MySQL Server et l'ai réinstallé, et pendant l'assistant de configuration après l'installation, je reçois une erreur: le service n'a pas pu être démarré. Erreur: 0.
Comment dois-je procéder à partir d'ici?
Réponses:
Exécutez la commande suivante
la source
systemctl status mysqld.service 2015-02-20 15:41:07 15160 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
initialisez mysql avant de démarrer sur windows.
la source
La première chose que vous devez faire est d'exécuter ces commandes:
Veuillez noter les différences
MySQL 5.0 a 17 tables dans le schéma mysql
MySQL 5.1 a 23 tables dans le schéma mysql
MySQL 5.5 a 24 tables dans le schéma mysql
Veuillez noter que mysql.plugin n'existe pas dans MySQL 5.0. Il est très plausible de supposer que vous avez installé MySQL 5.0 et fait disparaître les tables vitales pour MySQL 5.5.
Voici quelques bonnes nouvelles. Il y a quelque chose que vous pouvez essayer.
Pour cet exemple
Voici vos étapes
C'est ça.
Si vous l'exécutez sous Windows, les mêmes principes doivent s'appliquer.
Essaie !!!
MISE À JOUR 2011-07-29 16:15 EDT
Si vos noms d'utilisateur avaient des privilèges spécifiques à la base de données, voici vos étapes
la source
Ajoutez le chemin MySQL aux variables d'environnement.
la source
on dirait que vous avez déjà mysql en cours d'exécution
essayer
si vous voyez une sortie, vous devez probablement l'arrêter (ou redémarrer la boîte).
si vous ne voyez aucune sortie, essayez d'exécuter mysqld sans diaboliser et voyez la sortie.
la source
J'ai ajouté une balise Windows pour aider les gens à répondre à la question.
Mon arrière-plan n'est pas Windows, mais les principes s'appliquent.
Y a-t-il un processus mysql déjà en cours d'exécution? Si c'est le cas, vous devrez le tuer avant de le désinstaller. S'il était toujours en cours d'exécution lorsque vous avez essayé de désinstaller / réinstaller, vous aurez des processus et des fichiers qui vous empêcheront de désinstaller complètement.
Ouvrez la fenêtre des services, recherchez quoi que ce soit avec mysql dans le nom et assurez-vous qu'il est configuré pour ne pas tenter de démarrer avec un redémarrage. Ouvrez ensuite l'onglet des processus en cours d'exécution de la fenêtre des programmes en cours d'exécution (utilisez CTRL-ALT-DEL pour l'ouvrir) et recherchez et supprimez les processus en cours d'exécution avec mysql dans le nom.
Si vous êtes satisfait qu'il n'y a plus de processus mysql en cours d'exécution, vous pouvez continuer. Vous voudrez peut-être redémarrer pour être certain qu'aucun processus mysql en cours d'exécution ne traîne plus.
À ce stade, vous devriez pouvoir réinstaller et démarrer mysql.
la source
Exécutez mysql-test-run et vous devriez voir la sortie suivante:
la source
Si vous déplacez votre datadir, vous devez non seulement donner les nouvelles autorisations de datadir, mais vous devez vous assurer que tous les répertoires parents ont l'autorisation.
J'ai déplacé mon datadir sur un disque dur, monté dans Ubuntu comme:
et mon datadir était Bases de données .
J'ai dû définir des autorisations sur 771 pour chacun des répertoires média, utilisateur et données:
Si cela ne fonctionne pas, une autre façon de faire fonctionner mysql est de changer l'utilisateur dans /etc/mysql/my.cnf en root; bien qu'il y ait sans aucun doute des problèmes à le faire du point de vue de la sécurité.
la source