Je suis un débutant sur le terrain MySQL alors supportez-moi.
Je viens de terminer la mise à niveau de 11.10 à 12.04.
Tout semblait fonctionner sans problème et tous mes logiciels et paramètres fonctionnaient bien. En dehors de MySQL.
Quand j'essaye:
sudo start mysql
Je reçois une erreur:
start: Job failed to start
Où puis-je éventuellement diagnostiquer le problème? Et (espérons-le) - comment résoudre ce problème?
(J'ai désactivé le démarrage automatique en suivant les conseils ici si cela est important)
Mise à jour 1:
Les deux sorties de:
cat /var/log/mysql.err
cat /var/log/mysql.log
sont vides.
Sortie de dmesg | grep mysql
:
[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory
Mise à jour 2:
Comme indiqué par AWinter ci-dessous, il semblait que MySQL avait disparu automatiquement après la mise à jour et devait être réinstallé.
sudo rm /etc/mysql/ -R
- il n'était tout simplement pas présent dans mon cas. Quoi qu'il en soit - heureusement, c'était juste une installation locale pour tester Wordpress .. Je me demande bien ce qui se passerait sur un vrai serveur o_Oapt-get update
avant, car il a supprimé le pigeonnier et php5-mysql. Je ne pouvais les réinstaller qu'après la mise à jour. Une fois que tout était fait, tout fonctionnait à nouveau correctement.-bash: cd: /var/lib/mysql/: Permission denied
et utilisersudo -i
ne fonctionne même pas.la source
J'avais ce même problème et pour moi, c'était que les fichiers de log InnoDB étaient d'une taille différente de celle attendue par mysql et échouaient silencieusement lors de la mise à niveau.
J'avais un fichier de configuration personnalisé qui avait été effacé lors de la mise à niveau vers 12.04 et qui définissait la taille du fichier journal sur autre chose que la configuration par défaut.
Vous devez supprimer les fichiers: / var / lib / mysql / ib_logfile *
Une fois les fichiers supprimés, mysql peut maintenant démarrer et créer de nouveaux fichiers journaux de la taille par défaut.
la source
La plupart des erreurs apparaîtront en démarrant le serveur en mode détaillé et en regardant le résultat:
la source
J'ai eu le même problème, mais aucune des réponses ci-dessus ne m'a aidé. Donc, comme dernier espoir, j'ai essayé de libérer de l'espace disque. Je supprime simplement les fichiers journaux inutiles de / var / log, ce qui libère de l’espace 2,5G. Ensuite, MySQL a démarré normalement.
la source
Cela arrive parfois et bien qu'il y ait deux problèmes différents qui pourraient empêcher mysql de démarrer, j'écrirai ici quelques-uns des problèmes les plus courants que je connaisse:
NOTE - En expliquant la plupart des problèmes courants, je suppose que vous avez déjà essayé de supprimer et d'installer ou de réinstaller simplement le service mysql de la manière suivante:
Pour installer -
sudo apt-get install mysql-server mysql-client
Supprimer -
sudo apt-get remove mysql-server mysql-client
Purger (Supprimer les fichiers + Configuration) -
sudo apt-get purge mysql-server mysql-client
Réinstaller -
sudo apt-get install --reinstall mysql-server mysql-client
my.cnf
le fichier n'est pas dans le répertoire par défaut. Il devrait être (par défaut) situé dans/etc/my.cnf
ou/etc/mysql/my.cnf
.Espace insuffisant sur le disque dur où se trouvent les fichiers de données mysql. Si les bases de données deviennent trop volumineuses et occupent 100% du disque dur, le service échouera.
Après la mise à niveau, vérifiez que le
my.cnf
fichier est au bon endroit. Selon la manière dont vous avez mis à niveau ou à partir de la version à partir de laquelle vous avez effectué la mise à niveau, il se peut que ce soit/etc/my.cnf
ou/etc/mysql/my.cnf
tel que mentionné précédemment. Rappelez-vous également que le fichier peut également être nommémysql.conf
et pas seulementmy.cnf
. Cela se produit dans les cas où vous avez téléchargé le binaire depuis mysql.com .Faire un
dmesg
pour voir ce que le service mysql est jeté comme un message d'erreur aide, car il donne l'erreur de chargement. Cela pourrait aussi expliquer pourquoi cela se produit. Si vous tapezdmesg
seul dans le terminal, il vous montrera le monde. Ce que nous voulons, c'est l'info sur mysql, alors faites quelque chose comme ceci:dmesg | grep mysql
cela vous enverra toutes les lignes qui contiennent mysql.Vérifiez que le fichier
my.cnf
oumysql.conf
est correct. Dans 12.04, MySQL est la version 5.5, dans 11.10, il s'agit de la version 5.1. Il pourrait y avoir quelques changements dans le fichier de configuration (je n’ai pas vraiment vérifié cela) et cela peut sembler idiot, mais cela peut certainement vous causer des ennuis.Les erreurs liées aux problèmes de socket sont normalement la faute du fichier
my.cnf
ou dumysql.conf
fichier pointant au mauvais endroit, elles s’afficheront normalement comme suit:L’autre source de ce problème est liée au
mysql
fichier en/etc/init.d
ce sens qu’il pointe vers le mauvais dossier car il utilise peut-être un script plus ancien que celui requis pour le mysql réel sur le système (il n’a peut-être pas été mis à jour correctement, il n’a pas écrasé). le fichier de configuration, etc.). Il suffit donc de modifier l’un de ces deux fichiers et de voir s’ils pointent ailleurs, puis de simplementsudo service mysql restart
vérifier si cela fonctionne.Pour avoir un meilleur aperçu des sorties spécifiques à l'erreur de mysql, procédez comme suit:
cat /var/log/mysql.err
- Vous montrera les erreurs mysql. Je le ferais comme çacat /var/log/mysql.err | less
si vous voyez trop d’informationsless
défiler car cela vous aidera à faire défiler la sortie decat
.Il en va de même
cat /var/log/mysql.log
si vous voyez l'erreur, il peut être utile de l'insérer dans la question ou de le commenter, ce qui aidera à répondre plus rapidement à cette question.Si vous rencontrez des problèmes de connexion et que le service en cours d'exécution est utilisé, essayez de voir si le pare-feu du serveur autorise les connexions via le port 3306 (connexions entrantes). Ensuite, vérifiez si le routeur (s’il ya lieu) n’a pas bloqué le port 3306. Effectuez un test de réseau pour voir d’où provient le problème lié au port attribué à mysql.
Si tout va bien, pour tester si le service mysql fonctionne, tapez
service mysql status
En dernier recours. Si vous utilisez mysql mais que vous ne pouvez pas vous connecter, essayez ceci:
Arrêtez le serveur MySQL:
sudo /etc/init.d/mysql stop
ousudo service mysql stop
Démarrer le
mysqld
service manuellement avec une configuration manuellesudo mysqld --skip-grant-tables &
(N'oubliez pas d'ajouter le & sinon, vous devrez ouvrir un autre terminal. Le & envoie le processus en arrière-plan et vous pouvez tuer si vous utilisez le même terminal).
Connectez-vous à la base de données mysql en tant que racine
mysql -u root mysql
Tapez le texte suivant en remplaçant MyPASSWORD par votre nouveau mot de passe
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
Cela devrait être suffisant pour vous connecter à nouveau à votre service Mysql en tant que root. J'espère que ça aide.
la source
/etc/mysql/my.cnf
dans mon cas. Est-ce l'emplacement correct?dmesg
me donne une quantité de sortie qui dépasse ma compréhension: / j’avais effectivement installé la 5.1 - cela a-t-il des conséquences?J'ai eu le même problème après la mise à niveau vers Ubuntu Server 12.04 LTS, en cours d'exécution
était suffisant pour le réparer, bien qu'il se soit plaint d'une ancienne base de données de spotweb. J'ai corrigé cela en supprimant spotweb:
et reconfigurer mysql:
la source
J'ajouterai ceci au cas où quelqu'un serait confronté à des problèmes similaires. J'ai essayé toute la désinstallation et la réinstallation en vain. La clé pour trouver la solution était que Upstart place ses journaux d'erreurs dans ce dossier.
/ var / log / upstart /
pour mysql
/var/log/upstart/mysql.log
quand j'ai ouvert il y avait ce message
Quand j’ai cherché dans le dossier /etc/apparmor.d/tunables/ , il me manquait le fichier personnel, j’en ai créé un
gedit /etc/apparmor.d/tunables/home et copié le contenu depuis un autre ordinateur contenant ces lignes non commentées
quelqu'un fait face à un problème similaire ici
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303
puis après cela, j'ai pu redémarrer le service
la source
Dans mon cas, c'était beaucoup plus facile que certaines réponses ici. J'ai trouvé le bogue lié au tableau de bord et le correctif était celui mentionné dans le commentaire 9:
la source
Après la mise à niveau, j'ai constaté que mysql-server / mysql-server-5.5 n'était pas installé, ni 5.1. J'ai renommé my.cnf en my.cnf_old et j'ai essayé d'installer mysql-serven. Lors de l'installation, un message d'erreur indiquant que le mot de passe root n'a pas pu être défini est affiché. Après cela, j'ai vérifié mes configs, apparmor et ainsi de suite. Tout semblait aller bien. Ma prochaine tentative a été de reconfigurer mysql-server mais il s'est plaint que le paquet n'ait pas été installé complètement. J'ai donc décidé de désinstaller et, pendant cette opération, le paquet est corrigé et maintenant, il fonctionne. Je ne sais pas pourquoi parce que je n'ai rien changé.
la source
J'avais des problèmes similaires, mais j'ai rapidement été retrouvé chez apparmor, ce dont je me souvenais bien m'avait déjà parlé auparavant.
Si vous apportez des modifications à ces paramètres et que votre système utilise apparmor, vous devrez peut-être également ajuster /etc/apparmor.d/usr.sbin.mysqld. Par exemple. ces lignes ont été ajoutées (pour permettre un lien symbolique vers le fichier my.cnf et pour permettre au fichier lié par un lien symbolique d'être lu, vraisemblablement):
/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}
la source
Dans mon cas, j'ai essayé d'installer MySQL sur une nouvelle installation d'Ubuntu 12.04, mais je ne comprenais pas pourquoi cela m'avait causé une erreur lors de la définition du mot de passe de l'utilisateur 'root'. J'ai essayé toutes les solutions ci-dessus, mais rien à faire.
Ensuite, j'ai décidé de tout effacer / supprimer, j'ai désinstallé le serveur MySQL et supprimé tous ses dossiers (/ etc / mysql / et / var / lib / mysql /), finalement grâce à une sorte de hasard, cela n'a pas donné d'erreur la réinstallation et j'ai pu définir le mot de passe et démarrer l'instance du serveur.
la source
Dans le terminal, vous pouvez l'installer à nouveau et le faire exécuter my.cnf, vous pouvez taper:
cela pourrait fonctionner de cette façon.
la source
Je ne parviens pas à ajouter que
performance_schema
sous[mysqld]
en/etc/mysql/my.conf
cause cet échec. Suppression de cette ligne et mysql a pu redémarrer.Edit: Il s'avère qu'un gigaoctet de RAM ne suffit pas pour démarrer mysqld avec performance_schema activé. Je suis passé à 3 concerts et cela a bien fonctionné.
la source