Sur Snow Leopard, le démarrage de MySQL génère l’erreur suivante:
Le serveur s'est arrêté sans mettre à jour le fichier PID
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
pid-file=/var/run/mysqld/mysqld.pid
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
essayez de trouver votre fichier journal avec le suffixe ".err", il devrait y avoir plus d’informations. Cela pourrait être dans:
/usr/local/var/mysql/votre_nom_ordinateur.local.err
C'est probablement un problème d'autorisations
vérifie si une instance de mysql est en cours d'exécution
ps -ef | grep mysql
si oui, vous devriez l'arrêter ou tuer le processus
tuer -9 PID
où PID
est le numéro affiché à côté du nom d'utilisateur à la sortie de la commande précédente
vérifier la propriété de /usr/local/var/mysql/
ls -laF/usr/local/var/mysql /
s'il est propriétaire de root
, vous devriez le changer mysql
ou your_user
Sudo chown -R mysql/usr/local/var/mysql /
Avez-vous suivi les instructions de brew install mysql
?
Configurez les bases de données pour qu'elles s'exécutent sous votre compte utilisateur avec:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Pour configurer des tables de base dans un autre dossier ou utiliser un autre utilisateur pour exécuter Mysqld, consultez l'aide de mysqld_install_db
:
mysql_install_db --help
et affichez la documentation MySQL:
Pour exécuter, par exemple, l'utilisateur "mysql", vous devrez peut-être Sudo
:
Sudo mysql_install_db ...options...
Démarrez mysqld manuellement avec:
mysql.server start
Remarque: si cela échoue, vous avez probablement oublié de lancer les deux premières étapes ci-dessus.
J'ai eu le même problème sur mon ordinateur Mac (j'ai correctement suivi toutes les étapes d'installation suggérées par brew install
).
La suppression du fichier d'erreur l'a corrigé pour moi:
Sudo rm -rf /usr/local/var/mysql/dev.work.err
(dev.work
est mon nom d'hôte)
Cela a fonctionné parce que dev.work.err
était la propriété de _mysql:wheel
au lieu de mon propre nom d'utilisateur . CHOWN-ing le fichier d'erreur l'aurait probablement aussi corrigé.
Après le redémarrage, j'ai eu le même problème. Voici comment je l'ai corrigé:
Sudo chown -R _mysql /usr/local/var/mysql
Cela a fonctionné pour moi ...
Vérifiez tous les processus MySQL en cours d'exécution:
$ ps aux | grep mysql
USER PID %CPU %MEM
_mysql 5970 0.0 0.4 ...
Ensuite, supprimez tous les processus répertoriés dans la commande ci-dessus à l'aide de ce qui suit:
$ Sudo kill -9 [PID]
Remplacez [PID]
par le PID individuel de la liste ci-dessus, par exemple. 5970
.
Faites cela pour toutes les lignes que vous voyez avec la première commande.
Ensuite, vous pouvez redémarrer votre serveur MySQL:
mysql.server start
Mon fichier d'erreur m'indique également que le port peut être utilisé par un autre processus, mais le fait d'exécuter simplement Sudo mysql.server start
corrige le problème pour moi.
Cette erreur peut survenir lorsque vous essayez de démarrer msql après un arrêt incorrect.
Jetez un coup d'œil au fichier journal des erreurs mysql. S'il mentionne quelque chose comme "Vérifiez que vous n'avez pas déjà un autre processus mysqld utilisant les mêmes données ou les mêmes fichiers journaux.", vous devez ensuite arrêter correctement ce processus.
Voir quel processus mysql est en cours d'exécution, utilisez cette commande: lsof -i:3306
Votre sortie devrait ressembler à ceci:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 4249 username 17u IPv4 0x7843d9d130469c0b 0t0 TCP localhost:mysql (LISTEN)
kill -15 4249
Kill -15 envoie un message au processus pour libérer les ressources qu'il verrouille et mettre fin au processus après.
mysql.server start
Je suis récemment tombé sur ce problème, mais il fonctionnait auparavant, puis s'est arrêté.
C'est parce que j'ai initialement lancé mysql.server
en tant que root à la place de moi-même.
Le correctif consistait à supprimer le fichier journal des erreurs (qui appartenait à _mysql
). Le redémarrer a réussi.
Si aucune réponse ne vous a aidé, supprimez simplement le dossier /usr/local/var/mysql
puis réinstallez mysql brew reinstall mysql
.
La solution qui a fonctionné pour moi était la suivante: https://serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied
Changer certaines de mes autorisations semblait faire l'affaire. J'utilise un Macbook Air à la mi-2012 avec OS X 10.8.2 et mysql a été installé avec homebrew.
chmod 0755 /var
chown root:wheel /var/tmp
Sudo chmod 0771 /usr/local/var/mysql/*
Essayez de supprimer les fichiers ib_logfile0
et ib_logfile1
, puis exécutez à nouveau mysql
rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1
Ça marche pour moi.
Pour moi, le correctif était simple:
top
a montré que mysqld fonctionnait déjà
Sudo killall mysqld
puis permis au processus de démarrer
J'ai eu ce problème lors de la tentative de mise à niveau sur MacOS X 10.7.5.
Malheureusement, mysql a également été mis à jour de la version 5.5.14 à la version 5.6.10. Essayé le nouveau, n'a pas fonctionné.
J'ai décidé de retourner à mon ancienne installation et a fait un
brew switch mysql 5.5.14
Cela n'a pas résolu le problème. Ailleurs, j'ai lu et fait ça, le tour est joué! Tout était de retour :)
cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
Pour moi, la solution consistait à remplacer/corriger le répertoire de données dans/etc/my/cnf.
J'ai construit MySQL 5.5.27 à partir des sources avec les instructions fournies dans le fichier readme:
# Preconfiguration setup
Shell> groupadd mysql
Shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
Shell> tar zxvf mysql-VERSION.tar.gz
Shell> cd mysql-VERSION
Shell> cmake .
Shell> make
Shell> make install
# End of source-build specific instructions
# Postinstallation setup
Shell> cd /usr/local/mysql
Shell> chown -R mysql .
Shell> chgrp -R mysql .
Shell> scripts/mysql_install_db --user=mysql
Shell> chown -R root .
Shell> chown -R mysql data
# Next command is optional
Shell> cp support-files/my-medium.cnf /etc/my.cnf
Shell> bin/mysqld_safe --user=mysql &
# Next command is optional
Shell> cp support-files/mysql.server /etc/init.d/mysql.server
mysqld_safe s'est arrêté sans explication. l'exécution de /etc/init.d/mysql.server start
a entraîné l'erreur suivante:
"Le serveur s'est arrêté sans mettre à jour le fichier PID"
J'ai toutefois remarqué quelque chose d'étrange dans les instructions d'installation. Il a changé de propriétaire en mysql pour le répertoire "data", mais pas en "var"; C'est inhabituel parce que pendant des années, je devais m'assurer que le répertoire var était mysql en écriture. J'ai donc lancé manuellement chown -R mysql /usr/local/mysql/var
, puis tenté de le redémarrer. Toujours pas de chance. Mais pire, pas de fichier .err dans le répertoire var - c’est dans le répertoire "data"! donc scripts/mysql_install_db définit le camp dans/usr/local/mysql/var, mais le reste de l'application semble vouloir faire son travail dans/usr/local/mysql/data!
Donc, je viens d’éditer /etc/my.cnf et sous la section [mysqld] j’ai ajouté une directive pour pointer explicitement le répertoire de données de mysql sur var (comme je l’attend normalement), et après cela, mysqld démarre juste bien. La directive à ajouter ressemble à ceci:
datadir =/usr/local/mysql/var
Travaillé pour moi J'espère que cela vous aidera.
J'utilise,
J'ai installé MySQL en utilisant homebrew ('brew install mysql'). Il a installé quelques dépendances, puis mysql.
Quand j'ai essayé de le démarrer,
west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).
J'ai couru cette commande,
west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db
et MySQL fonctionne.
Veuillez noter que vous devez exécuter mysql_install_db à partir du niveau supérieur du répertoire mysql (IE, usr/local/Cellar/mysql/5.5.25). L'exécuter directement dans le répertoire/scripts ne lui donne pas assez de contexte pour s'exécuter.
Démarrer Mysql en mode sans échec
/usr/local/mysql/bin/mysqld_safe start
OU
sur MAC Terminez toute tâche mysql
ou mysqld
(ou autre) dans votre application Activity Monitor.
ou vérifiez votre erreur par
tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Il semble que le processus MySQL est en cours d'exécution, vous ne pouvez donc pas utiliser le port. Vous pouvez vérifier le processus MySQL en cours d'exécution à l'aide de la commande suivante:
ps auxf | grep mysql
Si vous obtenez un processus MySQL, supprimez cet ID de processus en utilisant kill -9 PID, puis essayez de démarrer MySQL.
Pour moi je devais réinstaller mysql
brew reinstall mysql
puis ci-dessousPour avoir lancerd démarrer mysql maintenant et redémarrer à la connexion:
brew services start mysql
Avec l'aide de quelques réponses postées ici, j'ai pu trouver le problème
D'abord je cours
Sudo -i
Donc, je pourrais avoir un accès root.
Puis j'ai supprimé le fichier xxxx.err
rm -rf /usr/local/mysql/data/xxxx.err
après avoir démarré MySQL en mode sans échec
/usr/local/mysql/bin/mysqld_safe start
Il essaiera de démarrer et se fermera à cause d'une erreur ... un nouveau fichier xxx.err sera créé et vous devrez le lire pour voir la cause de l'erreur.
tail -f /usr/local/mysql/data/mysqld.local.err
Dans mon cas, pour une raison quelconque, il manquait un dossier et un fichier dans le dossier /var/log/
... J'ai donc créé les deux
cd /var/log
mkdir mysql
touch mysql-bin.index
Une fois le nouveau fichier créé, vous devez modifier les autorisations.
chown -R _mysql /var/log/mysql
Lorsque toutes ces mesures ont été prises, ma base de données a commencé à fonctionner immédiatement ...
J'espère que cela peut aider les autres ici ... La clé est de lire l'erreur et de vous connecter et de trouver ce qui ne va pas ...
Dans mon cas, l'erreur se produit en raison du problème d'accès du fichier journal des erreurs.
Les deux commandes suivantes m'aident à résoudre le problème.
Sudo chown <user> /usr/local/var/mysql/<my-Host-name>.err
Sudo chmod 666 /usr/local/var/mysql/<my-Host-name>.err
J'espère que cela fonctionne pour vous.
Après avoir vérifié le journal des erreurs, j'ai trouvé ceci:
120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended
Et pour le résoudre, j’ai donné les droits de propriété sur tout le dossier mysql:
cd /usr/local
Sudo chown mysql mysql
Sudo chown mysql mysql-5.5.21-osx10.6-x86_64
Sudo chown _mysql mysql
Sudo chown _mysql mysql-5.5.21-osx10.6-x86_64
Puis (vous pouvez aussi le faire en ligne de commande), j’ai appliqué les permissions (une fois que j’ai donné cette propriété à _mysql et mysql users) à tous les dossiers fermés à partir du menu "obtenir des informations" de la commande. dossier à /usr/local/mysql-5.5.21-osx10.6-x86_64 . Vous n'avez pas besoin de penser à cela pour le pseudonyme puisque ce n'est qu'un pseudonyme.
Le nom du dossier dépend de la version de votre installation de mysql.
Que dit le journal des erreurs? J'ai eu cette erreur, et cela a fini par être un vieux paramètre invalide dans le fichier my.cnf, ce que le journal des erreurs mysql a indiqué. S'il ne s'agit pas d'un paramètre de configuration incorrect, le journal des erreurs doit au moins vous indiquer la bonne direction.
Eh bien, je suppose que le PO a résolu le problème à ce stade ... mais j'espère que cela incitera les autres à voir cette erreur dans la bonne direction.
Avait le même problème, pour moi, il faisait une suppression de brassage tout en ayant une installation précédente de mysqld en cours d'exécution. Semble que l'infusion n'arrête pas un service avant la désinstallation.
Après avoir vérifié le fichier .err, j'ai constaté l'erreur enregistrée qu'une autre copie de mysql était peut-être en cours d'exécution, après avoir mis fin à l'ancien service. J'ai ensuite pu redémarrer la nouvelle installation de MySQL.
Essaye ça..
cd YOURPATH/usr/local/mysql
rm -rf *.local.err
(supprime le fichier)touch YOURUSERNAME.local.pid
(génère un nouveau fichier * .local.pid dont l’erreur renvoyée se plaignait)mysql.server start
Simple....
Corrige l'erreur 2002 MySQL Socket
Correction de l'erreur de socket 2002 imminente - qui lie où MySQL place le socket et où OSX le pense, MySQL le place dans/tmp et OSX le recherche dans/var/mysql le socket est un type de fichier qui permet au client mysql/communication serveur.
Sudo mkdir/var/mysql
Sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Bien joué : )
Cela m'aide beaucoup! J'ai pris ce guide des gars sur http://coolestguidesontheplanet.com/
J'ai eu le même problème. déplacer mon fichier /etc/my.cnf a fonctionné pour moi. J'ai eu l'information ici
Le problème est une autorisation, il ne peut pas démarrer car il ne peut pas écrire sur mac.err car il appartient à quelqu'un d'autre.
Assurez-vous que le dossier/usr/local/var/mysql appartient à l'utilisateur qui va démarrer mysql. Si je lance mysql en tant que jack, c'est tout bon. Cependant, si vous le démarrez en tant que root, il créera un fichier mac.err (appartenant à root) sur lequel la prise ne pourra pas écrire. Par conséquent, si vous essayez de le redémarrer en tant que prise, il échouera.
Dans mon cas, j'ai eu ce problème sur vps, cPanel.
J'ai essayé la plupart des réponses ci-dessus, mais pas le succès.
ERREUR! Le serveur s'est arrêté sans mettre à jour le fichier PID (/var/lib/mysql/111318.vps-11.com.pid).
[ERREUR] Erreur irrécupérable: impossible d'ouvrir et de verrouiller les tables de privilèges: la table './mysql/db' est marquée comme bloquée et doit être réparée
[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI
https://forums.cpanel.net/threads/mysql-is-not-running.407142/
Vérifiez s'il vous reste de la place dans votre lecteur. J'ai eu ce problème quand il ne restait plus d'espace dans mon lecteur.
Déplacez le fichier journal nommé “ib_logfile” dans “/ var/lib/mysql” et redémarrez mysql. Parfois, mysql échouera car il a du mal à mettre à jour le fichier journal
mv /var/lib/mysql/ib_logfile* /some/tmp/folder/
Vous pouvez également supprimer ib_logfile car il sera créé automatiquement après le redémarrage de mysql
maintenant redémarrer le serveur mysql
J'essayais de réinstaller MySQL, et j'ai en fait oublié d'arrêter le serveur de mon ancienne installation. Pour résoudre ce problème, ps -ax | grep mysql
, puis kill [whatever PIDs]
. Mais, encore une fois, c'est différent pour tout le monde. Comme indiqué dans les autres réponses, accédez à /usr/local/var/mysql/
et consultez votre fichier journal .err.
Supprimez les fichiers * .err que vous trouvez dans le répertoire affiché dans le message d'erreur et créez le fichier dont se plaint mysql, redémarrez mysql.
D'une manière ou d'une autre, j'ai gâché mes permissions sur El Capitan et j'ai décidé de réinstaller MySQL à partir de zéro.
J'utilise brasser sur el capitan, et a décidé de réinstaller:
brew uninstall mysql
Sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS
Les autorisations de fichier sur la nouvelle installation ont changé de _mysql
pour inclure mon nom d'utilisateur
› ls -alh /usr/local/var/mysql
drwxr-xr-x 22 lfender admin 748B Mar 22 09:58 .
# ... etc
Dans mon cas, lorsque j'ai essayé de démarrer MySQL, j'ai reçu la même erreur: The server quit without updating PID file
. Voici ce que j'ai fait pour le réparer (en utilisant Terminal):
goto /usr/local/var/mysql
Sudo rm -rf hostname.err # Delete .err file
cd /usr/local/mysql/support-files
Sudo mysql.server start # Success!
J'ai eu le même problème. La raison est plutot simple. J'ai installé 2 serveur mysql. Un du port Mac, l'autre du paquet téléchargé. Donc, je ne fais que suivre les instructions ici et désinstaller celui du paquet . Comment désinstaller MySQL à partir de Mac OS X? Après cela, mysql fonctionne bien.
Supprimez le fichier pid, puis redémarrez mysqld.
Sur Mavericks, ce script m'a aidé:
bash <(curl -Ls http://git.io/eUx7rg)
Et puis je réinitialise mon mot de passe en fonction de https://stackoverflow.com/a/25883967/221781
Dans mon installation homebrew mysql, je devais simplement déplacer les fichiers ib_logfile0 et ib_logfile1 situés dans/usr/local/var/mysql/vers un autre répertoire.
Ensuite, je viens de faire mysql.server start et tout a fonctionné.
J'ai rencontré ce problème après avoir échangé les adresses IP du serveur. La base de données fonctionnait bien avant cela. Il y avait une entrée dans /etc/my.cnf que je devais mettre à jour:
bind-address = xxx.xxx.xxx.xx
Il y avait l'ancienne adresse IP.
J'ai rencontré ce problème après le redémarrage et la suppression de tous les fichiers * err.
Il m'est apparu que le répertoire my.cnf.d était absent de/usr/local/etc.
Il l'a créé
mkdir /usr/local/etc/my.cnf.d
Et copiez simplement my.cnf et my.cnf.default situés dans/usr/local/etc dans ce répertoire.
Ensuite, Mysql a pu redémarrer:
cd /usr/local/var/mysql
mysql.server start
Et MYSQL fonctionne.
Pourrait être lié à l'ancien processus MySQL. Vous devez le tuer et redémarrer. Parfois, cela peut être dû à un conflit dans le fichier de configuration MySQL. Essayez de le déplacer et redémarrez MySQL. Vérifiez l'URL suivante pour plus de détails.
http://linuxadministrator.pro/blog/?p=225
Merci.
Ce problème survient généralement lorsque vous n'avez pas installé la bibliothèque libaio.1. Installez d'abord ce paquet et recommencez l'étape mysql_install_db.
Dans mon cas, le problème était que le répertoire de données mysql avait été déplacé par accident vers un répertoire incorrect (/ var/log, et non vers/var/lib). Après avoir renvoyé les données dans/var/lib/mysql et redémarré le serveur, tout est redevenu normal.
c'est un problème dans la version 5.5
Voici un exemple pour la section [mysqld] de votre my.cnf:
skip-character-set-client-handshake
collation_server=utf8_unicode_ci
character_set_server=utf8
fait référence à: http://dev.mysql.com/doc/refman/5.6/en/charset-server.html
Si vous exécutez un cluster MySQL Galera tel que Percona XtraDB Cluster, recherchez les fichiers wsrep_recovery.*
dans le répertoire de données (par exemple: /var/lib/mysql
).
Je recevais le même message de systemctl lorsque j'essayais de démarrer un noeud qui avait été tué par le destructeur de MOO de l'hôte, mais rien n'indiquait pourquoi le démarrage avait échoué dans les journaux normaux. Les fichiers de récupération wsrep avaient la réponse. Dans mon cas, je devais démarrer mysql avec l'indicateur suivant:
mysqld --tc-heuristic-recover=ROLLBACK
désactiver selinux dans /etc/selinux/config
SELINUX=disabled
et redémarrez le serveur