démarrer le serveur MySQL à partir de la ligne de commande sur Mac OS Lion

162

J'ai installé mySQL pour mon Mac. En plus de démarrer le serveur SQL avec l'outil mySQL.prefPane installé dans les préférences système, je souhaite connaître l'instruction pour démarrer à partir de la ligne de commande. Je fais comme suit:

Après

su racine

Je démarre le serveur mySQL par ligne de commande, cela produit une erreur comme ci-dessous:

sh-3.2 # / usr / local / mysql / bin / mysqld

111028 16:57:43 [Avertissement] Définition de lower_case_table_names = 2 car le système de fichiers pour /usr/local/mysql-5.5.17-osx10.6-x86_64/data/ est insensible à la casse

111028 16:57:43 [ERREUR] Erreur fatale: Veuillez lire la section "Sécurité" du manuel pour savoir comment exécuter mysqld en tant que root!

111028 16:57:43 [ERROR] Annulation

111028 16:57:43 [Note] / usr / local / mysql / bin / mysqld: Arrêt terminé

Aidez-moi, s'il vous plaît!

ÉDITER:

La raison est ici: http://dev.mysql.com/doc/refman/5.5/en/changing-mysql-user.html

Une solution est décrite dans la réponse de xdazz ci-dessous.

vietstone
la source
Voir ma modification à la question pour l'explication
vietstone
1
Sur macOS, utilisez mdfind mysql.serverpour voir où se trouve l'exécutable de votre serveur
Benjamin Crouzier

Réponses:

187

Essayer /usr/local/mysql/bin/mysqld_safe

Exemple:

shell> sudo /usr/local/mysql/bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
(Press Control-D or enter "exit" to exit the shell)

Vous pouvez également les ajouter à vos scripts de démarrage bash:

export MYSQL_HOME=/usr/local/mysql
alias start_mysql='sudo $MYSQL_HOME/bin/mysqld_safe &'
alias stop_mysql='sudo $MYSQL_HOME/bin/mysqladmin shutdown'
xdazz
la source
1
Ça marche. Mais je ne peux pas quitter le pointeur de l'exécution de la commande. Comment l'arrêter lorsque la fenêtre Terminal est en cours d'exécution.
vietstone
11
Notez que cette réponse ne s'applique pas si vous avez installé mysql avec Homebrew.
cbmanica
Pour moi, cela a fini par être juste "mysqld <action>", le fichier se trouve dans / usr / local / mysql / bin / mysqld
crobicha
233

Simplement:

mysql.server start

mysql.server stop

mysql.server restart

user2792249
la source
1
Merci beaucoup! J'ai lu tant de choses, même les documents - et rien de tout cela ne fonctionnait pour moi, mais cela l'a fait !!!
HolyMoly
6
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXX.pid).
voici
@nyxee Vous devrez peut-être l'exécuter avec sudo!
anuveyatsu
Sainte vache. Je vous remercie!
Karl Johan Vallner
Beaucoup mieux et simple. Merci
Prabhakar Undurthi
135

J'aime aussi les alias ... cependant, j'ai eu des problèmes avec MySQLCOM pour commencer ... il échoue silencieusement ... Ma solution de contournement est semblable aux autres ... ~ / .bash_aliases

alias mysqlstart='sudo /usr/local/mysql/support-files/mysql.server start'
alias mysqlstop='sudo /usr/local/mysql/support-files/mysql.server stop' 
Eddie B
la source
Les autres réponses ont échoué sur OSX 10.7.5 avec la dernière installation de MySQL. Celui-ci a fait l'affaire - merci!
Irongaze.com
@ Irongaze.com Heureux d'avoir pu vous aider.
Eddie B
Merci!! Je voulais démarrer mysql et pouvoir également fermer le terminal et cela a fonctionné. Quelle est la différence entre cette façon de le démarrer et la méthode mysqld_safe?
oli206
1
De mysqld_safe vs mysql.server Avant que mysql.server ne démarre le serveur, il change d'emplacement dans le répertoire d'installation de MySQL, puis appelle mysqld_safe.
Eddie B
Excellente réponse! Simple et efficace.
Starkers
84

Comme cet article utile l'indique: Sur OS X pour démarrer / arrêter MySQL à partir de la ligne de commande:

sudo /usr/local/mysql/support-files/mysql.server start 
sudo /usr/local/mysql/support-files/mysql.server stop 

Sur Linux, démarrer / arrêter à partir de la ligne de commande:

/etc/init.d/mysqld start 
/etc/init.d/mysqld stop 
/etc/init.d/mysqld restart 

Certaines versions Linux offrent également la commande de service

# service mysqld start 
# service mysqld stop 
# service mysqld restart

ou

 # service mysql start 
 # service mysql stop 
 # service mysql restart 
David
la source
aucun fichier ou répertoire de ce type de/usr/local/mysql/support-files/mysql.server stop
nyxee
71

Si vous l'avez installé avec homebrew, le binaire sera quelque part comme

/usr/local/Cellar/mysql/5.6.10/bin/mysqld

ce qui signifie que vous pouvez le démarrer avec

/usr/local/Cellar/mysql/5.6.10/support-files/mysql.server start

et arrêtez-le avec

/usr/local/Cellar/mysql/5.6.10/support-files/mysql.server stop

Edit: Comme Jacob Raccuia l'a mentionné, assurez-vous de mettre la version appropriée de MySQL dans le chemin.

Alex K
la source
1
Ouais!!!!!! je ne savais pas que je l'avais installé de cette façon! assurez-vous de mettre la version appropriée de mysql dans le chemin
Jacob Raccuia
31
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

créer un alias dans .bash_profile

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"

et si vous essayez d'exécuter en tant que root, utilisez le mode sans échec

sudo ./bin/mysqld_safe

si vous rencontrez toujours des problèmes de démarrage, une lecture recommandée: mysql5.58 unstart server dans mac os 10.6.5

Dennis
la source
27

peut-être que votre serveur mysql n'a pas démarré

tu peux essayer

/usr/local/bin/mysql.server start

42 loup
la source
10

Pour moi, cette solution a fonctionné sur mac Sierra OS:

sudo /usr/local/bin/mysql.server start
Starting MySQL
SUCCESS!
shacharsol
la source
9

S'il est installé avec homebrew, essayez simplement de taper mysql.server dans le terminal et cela devrait être tout. AFAIK, l'exécutable sera sous /usr/local/bin/mysql.server.

Sinon, vous pouvez toujours exécuter en suivant "Locate mysql.server" qui vous indiquera où trouver ce fichier.

Nevio Vesić
la source
5

Si MySQL est installé via Homebrew, ces commandes vous aideront:

# For starting
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

# For stoping
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Mario Uher
la source
4
Le LauchAgent pour mysql n'était pas là par défaut. Running brew info mysql(que j'ai appris de: stackoverflow.com/a/4622474/459863 ) a déclaré que je devais d'abord courir ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents. Après cela, cela a fonctionné.
Wolfram Arnold
5

My MySQL est installé via homebrew sur OS X ElCaptain. Ce qui a corrigé ça fonctionnait

brew doctor

  • qui a suggéré que je cours

sudo chown -R $(whoami):admin /usr/local

Ensuite:

brew update
mysql.server start

mysql est maintenant en cours d'exécution

Merhawi Fissehaye
la source
Je ne sais pas pourquoi quelqu'un a voté contre. Cela m'est arrivé lors d'une mise à jour de la bière. L'exécution de brew doctor, puis le suivi des instructions pour ajouter un chemin particulier à mon profil bash ont résolu les problèmes. Merci pour la suggestion.
Nostalg.io
1

Erreur de démarrage du serveur MySql 'Le serveur s'est arrêté sans mettre à jour le fichier PID'

si vous avez installé mysql depuis homebrew

fermez le serveur mysql des préférences de mac

ps ax | grep mysql

#kill all the mysql process running
sudo kill -9 pid

which mysql
/usr/local/bin/mysql
Admins-MacBook-Pro:bin username$ sudo mysql.server start

Starting MySQL
. SUCCESS! 

Admins-MacBook-Pro:bin username$ which mysql

/usr/local/bin/mysql

Admins-MacBook-Pro:bin username$ ps ax | grep mysql

54916 s005  S      0:00.02 /bin/sh 
/usr/local/Cellar/mysql@5.7/5.7.27_1/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/Admins-MacBook-Pro.local.pid
55012 s005  S      0:00.40 /usr/local/Cellar/mysql@5.7/5.7.27_1/bin/mysqld --basedir=/usr/local/Cellar/[email protected]/5.7.27_1 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/[email protected]/5.7.27_1/lib/plugin --user=mysql --log-error=Admins-MacBook-Pro.local.err --pid-file=/usr/local/var/mysql/Admins-MacBook-Pro.local.pid
55081 s005  S+     0:00.00 grep mysql
NIRAJ KUMAR
la source
0
111028 16:57:43 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

Avez-vous défini un mot de passe root pour votre installation mysql? Ceci est différent de votre mot de passe sudo root. Essayer/usr/local/mysql/bin/mysql_secure_installation

Hoppo
la source
Lorsque j'ai exécuté la ligne ci-dessus, cela produit: Impossible de trouver un client 'mysql' dans PATH ou ./bin
vietstone