web-dev-qa-db-fra.com

MySQL ne démarre pas lors de la mise à niveau d'OSX vers Yosemite ou El Capitan

Je sais que des questions similaires existent, telles que MySQL avec MAMP ne fonctionne pas avec OSX Yosemite 10.10 . Cependant, MAMP et XAMPP ne sont pas installés sur mon ordinateur.

Lorsque j'essaie de démarrer mySQL à partir de PrefPane, rien ne se passe.

Lorsque j'essaie de démarrer mqSQL à partir de la ligne de commande via Sudo /usr/local/mysql/support-files/mysql.server start, je reçois: 

Starting MySQL . ERROR! The server quit without updating PID file(/usr/local/mysql/data/adamg.local.pid).

Toute aide serait appréciée. Je peux fournir n'importe quel fichier de sortie nécessaire.

66
Adam_G

Résolu en installant la dernière version de MySQL, en suivant les instructions ici http://coolestguidesontheplanet.com/get-Apache-mysql-php-phpmyad-working-osx-10-10-yosemite/

MODIFIER
Alors que Yosemite devient plus populaire, de plus en plus de gens butent sur cette question. La réponse ci-dessus concerne la mise à niveau de MySQL, de sorte qu'il fonctionne. La réponse liée par @doc dans les commentaires concerne le démarrage automatique de MySQL. Ce sont 2 questions distinctes.

26
Adam_G

Ouvrez un terminal:

  1. Vérifiez le panneau de préférences du système MySQL, s'il indique quelque chose dans la ligne "Attention,/usr/local/mysql/data n'est pas la propriété de" mysql "ou" _mysql "

  2. Si oui, allez dans le dossier mysql cd/usr/local/mysql

  3. faire un Sudo chown -R _mysql data/

  4. Cela changera la propriété de/usr/local/mysql/data et de tout son contenu en propriétaire de l'utilisateur '_mysql'

  5. Vérifiez le panneau de configuration du système MySQL, il devrait indiquer qu'il fonctionne maintenant, comme par magie. Si ce n'est pas recommencer.

  6. Une autre façon de confirmer est de faire une 

    netstat -na | grep 3306  

Il devrait dire:

tcp46      0      0  *.3306                 *.*                    LISTEN

Pour voir le propriétaire du processus et l'id du processus de mysqld:

ps aux | grep mysql
75
Tommy King

Longue histoire, il faut créer un fichier de lancement. Donc, du terminal:

Sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist

(Si vous ne connaissez pas vi, appuyez sur i pour commencer à insérer du texte)

Cela devrait être le contenu de votre fichier:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true />
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>
    </array>
  </dict>
</plist>

presse esc puis :wq!enter

Ensuite, vous devez donner les autorisations appropriées au fichier et le configurer pour qu'il soit chargé au démarrage.

Sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist 
Sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist 
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

Et c'est ça.

60
Ares

Dans mon cas, je l'ai corrigé en faisant un petit changement d'autorisation:

Sudo chown -R _mysql:_mysql /usr/local/var/mysql
Sudo mysql.server start

J'espère que ça aide quelqu'un d'autre ...

Note: Selon le commentaire de Mert Mertin:

Pour el capitan, c'est Sudo chown -R _mysql: _mysql/usr/local/var/mysql

34
Wils

Exécutez les commandes suivantes à partir de la ligne de commande ...

Sudo launchctl load -F /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist

Sudo launchctl unload -F /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist

puis démarrez le serveur mysql en utilisant

Sudo /usr/local/mysql/support-files/mysql.server start
7
KayV

Le .pid est le processid de l'instance de serveur mysql en cours d'exécution. Il apparaît dans le dossier de données lorsque mysql est en cours d'exécution et se supprime lorsque mysql est arrêté.

Si le système d'exploitation OSX est mis à niveau et que mysql n'est pas arrêté correctement avant la mise à niveau, mysql se ferme au démarrage, il se ferme simplement à cause du fichier .pid.

Vous pouvez essayer quelques astuces, http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/ sans quoi une réinstallation est nécessaire.

5
neilgee

Il vous suffit de créer l'utilisateur mysql (le script d'installation mysql crée _mysql)

Sudo vipw

ligne en double contenant _mysql

Changez pour la ligne dupliquée _mysql en mysql

Sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!
5
Thomas Dev

La réinstallation a corrigé le problème, car le programme d'installation a créé une nouvelle instance MySQL et le lien symbolique vers/usr/local/mysql pointe maintenant vers un répertoire de données qui ne contient pas de pid existant.

Il est à noter que les scripts mysql prefpane et mysql.server utilisent le nom d'hôte pour le pid, de sorte que la modification du nom d'hôte peut entraîner des problèmes avec ceci.

Bien que le prefpane soit obsolète, c’est une interface graphique agréable permettant à quelqu'un de démarrer/arrêter MySQL même si la fonction de démarrage automatique ne fonctionne pas.

J'ai adopté une approche hybride en adaptant mon script d'installation MySQL afin qu'il utilise Launchd pour démarrer automatiquement MySQL, mais le programme d'installation appelle en fait le script mysql.server. De cette façon, prefpane peut toujours être utilisé pour démarrer/arrêter MySQL à la demande, et essayer de faire un simple redémarrage de MySQL ne sera pas trop déroutant.

Voici un script qui n'active que ce comportement Launchd sur Yosemite avec MySQL déjà installé: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

Voici le script qui gère l’ensemble de l’installation automatisée de MySQL: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh

3
Jon Schwenn

J'ai un problème similaire avec MySQL sur un Mac (Mac Os X n'a ​​pas pu démarrer le serveur MySQL. Motif: 255 et également «ERREUR! Le serveur s'est arrêté sans mettre à jour le fichier PID»). Après un long processus d’essai et d’erreur, enfin, afin de restaurer les autorisations de fichiers, je viens de faire cela:

* lance le fichier Disk Utilities.app
* choisissez mon lecteur sur le panneau de gauche
* cliquez sur le bouton «Réparer les autorisations du disque».

Cela a fait le tour pour moi. 

En espérant que cela puisse aider quelqu'un d'autre.

2
Claude COULOMBE

Si vous essayez d’installer une nouvelle version, vous manquerez parfois les données précédentes. Veuillez utiliser les éléments suivants dans votre terminal et je vous garantis que mySql commencera à fonctionner en un rien de temps ..

Sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

Rappelez-vous, il vous demandera votre mot de passe Machine et non pas le mot de passe mysql.

2
Vinith

Essaye ça:

Sudo mysqld_safe &
1

vous voulez le réparer peut éditer le fichier "/ Applications/XAMPP/xamppfiles/xampp" avec TextEdit.

Recherchez le texte "$ XAMPP_ROOT/bin/mysql.server start>/dev/null &" 
Et ajoutez "unset DYLD_LIBRARY_PATH" dessus. Cela devrait ressembler à:

non défini DYLD_LIBRARY_PATH 
$ XAMPP_ROOT/bin/mysql.server start>/dev/null &

l'espoir peut vous aider

1
vualoaithu

Rien de ce qui précède n'a fonctionné .. mais l'installation d'une nouvelle version de MySQL a fait l'affaire.

1
json

Manière la plus simple: copier et coller ceci dans le Terminal (mais assurez-vous de lire plus en premier):

bash <(curl -Ls http://git.io/eUx7rg)

Cela installera et configurera tout automatiquement. Le script est fourni par MacMiniVault et est disponible sur Github . Plus d'informations sur le script d'installation de MySQL sur http://www.macminivault.com/mysql-yosemite/ .

1

Mon Mac a décidé de se redémarrer de manière aléatoire. causant toute une série d'erreurs. L'un d'entre eux était le refus de MySQL de démarrer correctement. J'ai parcouru beaucoup de SO questions/réponses ainsi que d'autres sites. 

Finalement, ce qui a fini par résoudreMONproblème était le suivant:

1) Création du fichier (/usr/local/mysql/data/.local.pid

2) chmod 777 sur ce fichier 

3) exécuter mysql.server start (le mien était Situé dans/usr/local/bin/mysql.server)

0
Stevers

2 étapes ont résolu mon problème:

1) Supprimer "/Library/LaunchDaemons/com.mysql.mysql.plist"

2) Redémarrez Yosemite

0
AamirR

Je lance habituellement le serveur mysql en tapant

$ mysql.server start

sans Sudo. Mais par erreur je tape Sudo avant la commande. Maintenant, je dois supprimer le fichier d'erreur pour démarrer le serveur.

$ Sudo rm /usr/local/var/mysql/`hostname`.err
0
philippinedev

Même arrivé à moi! J'ai donc essayé de redémarrer après avoir arrêté l'application mysql en cours, et cela a fonctionné!

0
Ryan Tian