Erreur de démarrage du serveur MySql «Le serveur se ferme sans mettre à jour le fichier PID»

284

Sur Snow Leopard, le démarrage de MySQL donne l'erreur suivante:

Le serveur se ferme sans mettre à jour le fichier PID

my.cnf

[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
Chinmay
la source
7
en cours d'exécution en tant qu'administrateur. avec sudo /usr/local/mysql/support-files/mysql.server start
Chinmay
6
même problème.
Mysql
20
Même problème ici. également installé avec infusion.
jspooner
11
J'ai également eu ce cas sur mon mac et j'ai juste supprimé le journal des erreurs, comme «/usr/local/var/mysql/*.err», qui a démarré avec succès.
Mathew P. Jones
3
J'ai également eu la même erreur sur mac. Mais je l'ai résolu. Si vous êtes installé via un fichier .dmg, allez dans les préférences système puis cliquez sur l'icône mysql puis cliquez sur le bouton démarrer mysql.
Amaranadh Meda du

Réponses:

276

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/your_computer_name.local.err

C'est probablement un problème avec les autorisations

  1. vérifier si une instance mysql est en cours d'exécution

    ps -ef | grep mysql

    si oui, vous devez l'arrêter ou tuer le processus

    tuer -9 PID

    PIDest le numéro affiché à côté du nom d'utilisateur à la sortie de la commande précédente

  2. vérifier la propriété de /usr/local/var/mysql/

    ls -laF / usr / local / var / mysql /

    s'il est propriétaire, rootvous devez le changer mysqlouyour_user

    sudo chown -R mysql / usr / local / var / mysql /

Tombart
la source
24
J'ai dû chown à l'utilisateur mysql plutôt qu'à mon utilisateur.
Jared
3
travaillé pour moi. j'ai vérifié le fichier d'erreur et dit que c'était parce que les autorisations de fichier. exécuté la commande chown et travaillé. Merci!!
Packet Tracer
2
sudo chown -R my_user / usr / local / var / mysql / a travaillé pour moi au moins
Bjørn Børresen
D'après ma propre expérience - Faites attention qu'après avoir fait le sudo chown, vous n'avez actuellement aucun processus mysql exécuté sous un autre utilisateur ou root. ps -ef | grep mysql validera que vous n'avez rien en cours d'exécution - sinon vous ne pourrez pas le démarrer.
Arthur Frankel
1
Économiseur de vie total. Ma seule observation est que le chemin du fichier vers le dossier mysql peut varier.
ALisboa
198

Avez-vous suivi les instructions de brew install mysql?

Configurer des bases de données pour exécuter COMME VOTRE COMPTE UTILISATEUR avec:

Pour mysql 5.x:

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 consultez la documentation MySQL:

Pour mysql 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Assurez-vous que le répertoire de données /usr/local/var/mysqlci-dessus est vide, sauvegardez-le si nécessaire.

Pour fonctionner en tant qu'utilisateur "mysql", par exemple, 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é d'exécuter les deux premières étapes ci-dessus

svs
la source
78
Si vous obtenez à plusieurs reprises la même erreur même après avoir suivi les étapes de la sortie, supprimez le fichier * .err du même répertoire que le fichier * .pid. mahdiyusuf.com/post/21022913180/…
ekillaby
6
J'ai essayé de suivre ces instructions un million de fois mais je ne l'ai jamais fait fonctionner. J'ai essayé de "tricher" en ne nettoyant pas toutes les choses que le docteur m'avertissait car je pensais que cela ne faisait aucune différence. En fin de compte, le nettoyage et le suivi des conseils des médecins de brassage ont permis de parcourir la configuration décrite ci-dessus. Donc, une note à quiconque passe par là; n'essayez pas de tromper le médecin du brassage et pensez que vous savez mieux!
span
9
J'ai encore plein de trucs mal quand j'infiltre un médecin et l'ajout d'une autorisation d'écriture à mon propre utilisateur a fait l'affaire. sudo chown -R your_user /usr/local/var/mysql/comme la réponse de
@Tombart
1
@countfloortiles Oui! La suppression du fichier d'erreur l'a fait. :-)
ott--
6
La mysqld_install_dbcommande me donne l'erreurmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
Snowcrash
125

J'ai eu le même problème sur ma machine 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é car dev.work.errappartenait à la _mysql:wheelplace de mon propre nom d'utilisateur. CHANGER le fichier d'erreur l'aurait probablement corrigé également.

ukliviu
la source
2
Cela a également résolu mon problème, après le redémarrage de mysql qui ne pouvait plus fonctionner, ce qui m'a donné le même problème, mais la suppression du journal des erreurs qui appartenait à _mysql: admin a résolu le problème
user980085
5
Cela m'a semblé le plus utile, m'a fait réaliser que je ne devrais pas démarrer ce service avec SUDO mais l'exécuter sous mon propre compte utilisateur.
Bnjmn
3
C'est une assez bonne réponse pour ceux qui ont installé MySQL en utilisant Homebrew
Stephane Paquet
Après des semaines à essayer différentes choses, lorsque j'ai supprimé le fichier d'erreur, tout a commencé à fonctionner. Merci
DF
Je n'ai pas eu à le supprimer, je l'ai simplement redirigé vers mon compte, car un compte _mysql l'a repris.
Sammy Larbi
90

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
Sam Ruberti
la source
merci beaucoup - n'oubliez pas de sauvegarder des trucs cependant, juste au cas où vous
feriez mal
Merci. J'avais un problème avec Lampp dans Ubuntu. J'ai copié l'intégralité du dossier lampp depuis / opt vers un nouveau serveur. Lorsque j'ai essayé de démarrer mysql, j'ai reçu un message: le serveur s'est arrêté sans mettre à jour le fichier PID. Allez dans lampp / var / et faites chown -R mysql mysql / Cela a fonctionné pour moi!
Dave
6
Merci, vous êtes mon héros;)
Fareed Alnamrouti
Merci beaucoup mon pote! Sauvé la journée!
Masiar
8
Sur El Capitan, cela a fonctionné:sudo chown -R _mysql /usr/local/mysql/data
Justin
33

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

Tuez ensuite tous les processus répertoriés à partir de 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
mikoop
la source
ou utiliser pkill mysqlpour tuer tous les processus qui correspondent à "mysql" ( -9n'est pas nécessaire dans la plupart des cas).
bfontaine
pour tuer tout le processus avec un ID spécifique et le redémarrer
Anupam Maurya
26

Cette erreur peut se produire lorsque vous essayez de démarrer msql après un arrêt incorrect.

  1. Jetez un œil au fichier journal des erreurs mysql. S'il mentionne quelque chose comme "Vérifiez que vous n'avez pas encore un autre processus mysqld utilisant les mêmes données ou fichiers journaux." , vous devez alors arrêter correctement ce processus.

  2. Voir sur quel processus mysql s'exécute, 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)
  1. Arrêtez le processus exécutant mysql: kill -15 4249

Kill -15 envoie un siganl au processus pour libérer toutes les ressources qu'il verrouille et terminer le processus après.

  1. Maintenant, mysql devrait démarrer sans problème: mysql.server start
cosbor11
la source
Cela fonctionne toujours pour moi à High Sierra, pour tout ce qui en vaut la peine.
Jonathan Stegall
24

Mon fichier d'erreur m'a également indiqué que le port peut être utilisé par un autre processus, mais simplement l'exécution a sudo mysql.server startrésolu le problème pour moi.

jaredsmith
la source
ouais ... cela a fonctionné pour moi aussi ... et rien ci-dessus n'a fonctionné
Prashant
Je suivais les instructions que j'avais lues quelque part, la façon de démarrer MySQL sur un Mac est «sudo /usr/local/mysql/support-files/mysql.server start». Cela a produit l'erreur "le serveur s'est arrêté sans mettre à jour le fichier pid", et c'est ainsi que je suis arrivé sur cette page. Après avoir essayé de nombreuses réponses, j'ai trouvé 'sudo mysql.server start', et cela a fonctionné. Merci.
rodmclaughlin
19

Essayez de supprimer ib_logfile0et de ib_logfile1fichiers, puis réexécutez mysql

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

Ça marche pour moi.

user3890355
la source
1
J'ai également supprimé le .errfichier dans le même répertoire, ce qui a fonctionné pour moi.
Anthony au
Bien. C'est très simple et ça marche vraiment pour moi. Mais, dans mon cas, je ne le renomme queib_log*.bak
mochadwi
18

Si personne ne vous a aidé, supprimez simplement le dossier /usr/local/var/mysql, puis réinstallez mysql brew reinstall mysql.

user3890355
la source
9
AVERTISSEMENT, cela signifie effacer toutes les bases de données.
theredled
J'installe une version supérieure de mysql avant, que j'installe mysql5.7 et ce problème se produit. Il suffit de supprimer / usr / local / var / mysql et de le brew reinstall [email protected]résoudre.
Pegasus
Déplacez d'abord le dbs sous / usr / local / var / mysql vers un autre dossier. Après l'installation et le démarrage réussi du service mysql, essayez de reculer la base de données nécessaire.
civic.LiLister
15

J'ai récemment rencontré ce problème, mais il fonctionnait auparavant, puis je me suis arrêté.

C'est parce que j'ai commencé mysql.servercomme root au lieu de moi-même.

Le correctif consistait à supprimer le fichier journal des erreurs (qui appartenait à _mysql). Le recommencer a réussi.

Roland Parnaso
la source
Merci! J'ai eu le même problème pendant une heure, puis j'ai trouvé votre réponse.
FLY
11

Pour moi, j'ai dû réinstaller mysql

brew reinstall mysql

puis ci-dessous Pour que launchd démarre mysql maintenant et redémarre à la connexion:

brew services start mysql
sumit
la source
10

La solution qui a fonctionné pour moi était ici: /server/334284/cant-create-pid-file-on-mysql-server-permission-denied

Changer certaines de mes autorisations semblait faire l'affaire. J'utilise un Macbook Air 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/*
Gabe
la source
10

Pour moi, la solution était simple:

top

a montré que mysqld fonctionnait déjà

sudo killall mysqld 

puis a permis au processus de démarrer

Luke Madhanga
la source
8

J'ai rencontré ce problème lors de la tentative de mise à niveau de brew sur MacOS X 10.7.5.

Malheureusement, mysql a également été mis à niveau vers 5.6.10 à partir de 5.5.14. J'ai essayé le nouveau, n'a pas fonctionné.

J'ai décidé de revenir à mon ancienne configuration et j'ai 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
cenk
la source
Cela a fonctionné pour moi après la première utilisation brew upgrade mysqlet brew switch mysql 5.7.17qui était ma version précédente. Bizarre!
Jorge Orpinel
7

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 exécuté 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 suffisamment de contexte pour qu'il s'exécute.

westonplatter
la source
A travaillé pour moi avec 5.5.28 et infuser sur OSX 10.7.5
ch3rryc0ke
7

Pour moi, la solution était de 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 terminé sans explication. l'exécution a /etc/init.d/mysql.server startentraîné l'erreur:

"Le serveur se ferme sans mettre à jour le fichier PID"

J'ai cependant 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 j'ai dû m'assurer que le répertoire var était accessible en écriture mysql. J'ai donc exécuté manuellementchown -R mysql /usr/local/mysql/var , puis essayé de le redémarrer. Toujours pas de chance. Mais pire, pas de fichier .err dans le répertoire var - c'était dans le répertoire "data"! donc scripts / mysql_install_db configure 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 de modifier /etc/my.cnf et sous la section [mysqld] j'ai ajouté une directive pour pointer explicitement le répertoire de données de mysql vers var (comme je m'attends normalement à ce qu'il en soit ainsi), et après cela, mysqld démarre juste bien. La directive à ajouter ressemble à ceci:

datadir = / usr / local / mysql / var

A travaillé pour moi. J'espère que cela vous aide.

SKelly
la source
5

Il semble que le processus MySQL soit 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, tuez cet ID de processus en utilisant kill -9 PID, puis essayez de démarrer MySQL.

colin2328
la source
Cette réponse est mon sauveur.
Sangbeom Han
5

Démarrez Mysql en mode sans échec

/usr/local/mysql/bin/mysqld_safe start

OU

sur MAC Fin tout mysqlou mysqldtâche (ou autre) dans votre application Moniteur d' activité.

ou vérifiez votre erreur en

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Saurabh Chandra Patel
la source
4

Que dit le journal des erreurs? J'ai eu cette erreur, et cela a fini par être un ancien paramètre non valide dans le fichier my.cnf, indiqué par le journal des erreurs mysql. S'il ne s'agit pas d'un mauvais paramètre de configuration, le journal des erreurs devrait au moins vous orienter dans la bonne direction.

Eh bien, je suppose que l'OP l'a corrigé à ce stade ... mais j'espère que cela indique aux autres de voir cette erreur dans la bonne direction.

Brian Ray
la source
4

À l'aide de quelques réponses publiées ici, j'ai pu trouver le problème

D'abord je cours

sudo -i

Je pouvais donc avoir un accès root.

Que j'ai supprimé le fichier xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

après avoir commencé MySQL dans SafeMode

/usr/local/mysql/bin/mysqld_safe start

Il essaiera de démarrer et se terminera en raison d'une erreur ... un nouveau fichier xxx.err sera créé et vous devez le lire pour voir la cause de l'erreur

tail -f /usr/local/mysql/data/mysqld.local.err

Sur mon cas, pour une raison quelconque, il manquait un dossier et un fichier dans le /var/log/dossier ... J'ai donc créé les deux

cd /var/log

mkdir mysql

touch mysql-bin.index

Une fois le nouveau fichier créé, vous devez modifier l'autorisation

chown -R _mysql /var/log/mysql

Lorsque toutes ces étapes 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 se connecter et de trouver ce qui ne va pas ...

Paulo Griiettner
la source
4

Dans mon cas, l'erreur se produit en raison du problème d'accès au 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
FrankSu
la source
3

J'espère que ce travail 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é des droits de propriété sur l'ensemble du 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

Ensuite (vous pouvez également le faire en ligne de commande), j'ai appliqué les autorisations (une fois que j'ai donné cette propriété aux utilisateurs _mysql et mysql ) à tous les dossiers inclus depuis le menu "get info" du dossier dans / usr / local / mysql -5.5.21-osx10.6-x86_64 . Vous n'avez pas besoin de mettre cela sur l'alias car ce n'est qu'un alias.

Le nom du dossier dépend de la version d'installation de mysql que vous avez.

lu1s
la source
3

J'ai eu le même problème. le déplacement de mon fichier /etc/my.cnf a fonctionné pour moi. J'ai les informations ici

Nealv
la source
3

Eu le même problème, pour moi, il faisait un retrait de brew tout en ayant une installation précédente de mysqld en cours d'exécution. Il semble que l'infusion n'arrête pas un service avant la désinstallation.

Après avoir vérifié le fichier .err, j'ai vu l'erreur consignée qu'une autre copie de mysql peut être en cours d'exécution, après avoir terminé l'ancien service. J'ai ensuite pu redémarrer la nouvelle installation de mysql.

Coup de coude
la source
Oui, consultez les journaux d'erreurs. Dans mon cas, j'ai couru ls -latr /usr/local/var/mysql/pour trouver le dernier fichier modifié, qui comprenait le journal des erreurs, puis tail -50 name.errpour voir l'erreur, qui était un problème dans la configuration.
mahemoff
Dieu merci, vous aviez raison. J'ai utilisé ps aux | grep mysqldpuis terminé le processus avec kill -9 [proccessid]et le serveur a démarré avec succès
Sagish
3

Facile....

Correction de l'erreur de socket MySQL 2002

Correction de l'erreur imminente de socket 2002 - qui relie où MySQL place le socket et où OSX pense qu'il devrait être, 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/

carloslozada
la source
3

Essaye ça..

  1. Accédez au répertoire parent du problème cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (supprime le fichier)
  3. touch YOURUSERNAME.local.pid (génère un nouveau fichier * .local.pid dont l'erreur renvoyée se plaignait)
  4. retournez dans votre projet et redémarrez mysql en utilisant mysql.server start
Nick Sarafa
la source
1
Cela a fonctionné pour moi. La raison en est que le error.logfichier appartenait à "_mysql", lançant des erreurs dans les journaux. Je voulais juste me connecter pour éviter que quelqu'un d'autre ait ce problème. 150818 19:32:06 mysqld_safe Logging to '/opt/boxen/log/mysql/error.log'. 150818 19:32:06 mysqld_safe Starting mysqld daemon with databases from /opt/boxen/data/mysql /opt/boxen/homebrew/bin/mysqld_safe: line 129: /opt/boxen/log/mysql/error.log: Permission denied
Donovan
Cela ne fonctionne pas si votre problème est lié aux autorisations, ce qui génère la même erreur mysql.
mpoletto
A également fonctionné pour moi. J'ai également dû redémarrer mon apache (pour ceux qui utilisent également une pile LAMP).
Tommyixi
3

D'une certaine manière, j'ai bousillé mes autorisations sur El Capitan et j'ai décidé de réinstaller MySQL à partir de zéro.

J'utilise brew sur el capitan et j'ai 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 une nouvelle installation ont changé de _mysqlpour inclure mon nom d'utilisateur

 ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc
lfender6445
la source
2

Vérifiez s'il reste de la place dans votre lecteur. J'ai eu ce problème quand il n'y avait plus d'espace dans mon lecteur.

thavan
la source
Je n'aurais jamais pensé au problème d'espace si vous ne l'aviez pas mentionné. Tu es un sauveur!
Kshitij Bajracharya
2

Le problème est lié aux autorisations, il ne peut pas démarrer car il ne peut pas écrire dans mac.err car il appartient à quelqu'un d'autre.

Assurez-vous que le dossier / usr / local / var / mysql appartient à l'utilisateur qui démarrera mysql. Si je démarre mysql comme 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 jack ne peut pas écrire, donc lorsque vous essayez de le redémarrer en tant que jack, il échouera.

  1. Assurez-vous que le dossier et les fichiers appartiennent à l'utilisateur exécutant mysql.server start
  2. Assurez-vous qu'il n'y a pas déjà un mac.err ou mac.pid appartenant à quelqu'un d'autre.
  3. Commencer est le bon utilisateur.
Jack Sukerman
la source
J'ai utilisé chown -R <nom_utilisateur> / usr / local / var / mysql et cela a très bien fonctionné. Belle solution.
mbokil
2

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.

  1. vérifiez où se trouve votre journal des erreurs. Il serait mentionné à la fin de la ligne d'erreur.

ERREUR! Le serveur se ferme sans mettre à jour le fichier PID (/var/lib/mysql/111318.vps-11.com.pid).

  1. Ouvrez ce fichier (/var/lib/mysql/111318.vps-11.com.err) et parcourez le bas pour les lignes tardives. Dans mon cas, il y a

[ERREUR] Erreur fatale: impossible d'ouvrir et de verrouiller les tables de privilèges: la table './mysql/db' est marquée comme plantée et doit être réparée

  1. Comment résoudre ce problème: Récupération et correction des index de table par commande:

[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (Re) Démarrez votre mysql
Sadee
la source