203

I installed mySQL on my Mac. Beside starting the SQL server with mySQL.prefPane tool installed in System Preferences, I want to know the instructions to start from command-line. I do as follows:

After

su root

I start the mySQL server by command-line, but it produces an error as below:

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

111028 16:57:43 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.17-osx10.6-x86_64/data/ is case insensitive

111028 16:57:43 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

111028 16:57:43 [ERROR] Aborting

111028 16:57:43 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

Vega
  • 25,886
  • 26
  • 85
  • 95
vietstone
  • 8,344
  • 16
  • 49
  • 73

14 Answers14

351

Simply:

mysql.server start

mysql.server stop

mysql.server restart

tom10271
  • 3,523
  • 4
  • 28
  • 50
user2792249
  • 8,703
  • 3
  • 12
  • 3
  • 14
    this is what I got for this one: `. ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXX.pid).` – nyxee Aug 18 '17 at 08:56
  • @nyxee You may need to run it with `sudo`! – anuveyatsu Aug 23 '18 at 08:49
  • I got the same error even with `sudo`. On mac Big Sur and MySQL 5.7, I needed to stop/start with: `sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist` and `sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist` – hamx0r Nov 29 '20 at 23:38
207

Try /usr/local/mysql/bin/mysqld_safe

Example:

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)

You can also add these to your bash startup scripts:

export MYSQL_HOME=/usr/local/mysql
alias start_mysql='sudo $MYSQL_HOME/bin/mysqld_safe &'
alias stop_mysql='sudo $MYSQL_HOME/bin/mysqladmin shutdown'
Alan
  • 7,006
  • 5
  • 29
  • 38
xdazz
  • 154,648
  • 35
  • 237
  • 264
145

I like the aliases too ... however, I've had issues with MySQLCOM for start ... it fails silently ... My workaround is akin to the others ... ~/.bash_aliases

alias mysqlstart='sudo /usr/local/mysql/support-files/mysql.server start'
alias mysqlstop='sudo /usr/local/mysql/support-files/mysql.server stop' 
Jordan
  • 5,933
  • 3
  • 22
  • 30
Edward J Beckett
  • 4,911
  • 1
  • 39
  • 40
  • Other answers failed on OSX 10.7.5 w/ latest MySQL install. This one did the trick - thanks! – Irongaze.com Mar 06 '13 at 19:30
  • Thanks!! I wanted to start mysql and be able to close the terminal as well and this worked. What is the difference between this way of starting it and the mysqld_safe way? – oli206 Mar 25 '13 at 12:18
  • 1
    From [mysqld_safe vs mysql.server](http://dev.mysql.com/doc/refman/5.1/en/automatic-start.html) Before mysql.server starts the server, it changes location to the MySQL installation directory, and then invokes mysqld_safe. – Edward J Beckett Mar 26 '13 at 03:10
  • I did try the command, but it couldn't start, and it seems to be I can't have a pid file. What should I do? – ray6080 Feb 24 '14 at 08:44
  • @ray6080 , I think you forgot to type `sudo` in front of `./mysql.server start`. From the **support_files** directory, the following command works for me. `sudo ./mysql.server start` – Austin A Mar 10 '15 at 15:26
94

As this helpful article states: On OS X to start/stop MySQL from the command line:

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

On Linux start/stop from the command line:

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

Some Linux flavours offer the service command too

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

or

 # service mysql start 
 # service mysql stop 
 # service mysql restart 
PandaSobao
  • 23
  • 2
  • 7
David
  • 3,523
  • 28
  • 35
79

If you installed it with homebrew, the binary will be somewhere like

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

which means you can start it with

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

and stop it with

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

Edit: As Jacob Raccuia mentioned, make sure you put the appropriate version of MySQL in the path.

Alex K
  • 13,447
  • 4
  • 29
  • 30
42

Maybe your mysql-server didn't start.

You can try

/usr/local/bin/mysql.server start
Vega
  • 25,886
  • 26
  • 85
  • 95
42wolf
  • 867
  • 8
  • 5
32
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

make alias in .bash_profile

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

and if you are trying to run as root use following safe mode

sudo ./bin/mysqld_safe

if you are still having issues starting, a recommended read: mysql5.58 unstart server in mac os 10.6.5

Community
  • 1
  • 1
Dennis
  • 3,924
  • 7
  • 25
  • 42
14

For me this solution worked on mac Sierra OS:

sudo /usr/local/bin/mysql.server start
Starting MySQL
SUCCESS!
shacharsol
  • 2,276
  • 19
  • 14
9

If it's installed with homebrew try just typing down mysql.server in terminal and that should be it. AFAIK it executable will be under /usr/local/bin/mysql.server.

If not you can always run following "locate mysql.server" which will tell you where to find such file.

gitaarik
  • 36,986
  • 11
  • 91
  • 97
Nevio Vesić
  • 367
  • 3
  • 7
9

My MySQL is installed via homebrew on OS X ElCaptain. What fixed it was running

brew doctor

  • which suggested that I run

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

Then:

brew update
mysql.server start

mysql is now running

Merhawi Fissehaye
  • 2,152
  • 1
  • 22
  • 34
  • Don't know why someone downvoted. This happened to me during a brew update. Running brew doctor, and then following the instructions to add a particular path to my bash profile fixed the issues. Thanks for the suggestion. – Nostalg.io Jul 15 '16 at 02:33
5

If you have MySQL installed through Homebrew these commands will help you:

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

# For stoping
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Mario Uher
  • 12,009
  • 4
  • 41
  • 68
  • 4
    The LauchAgent for mysql wasn't there by default. Running `brew info mysql` (which I learned from: http://stackoverflow.com/a/4622474/459863) stated that I first had to run `ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents`. After that, it worked. – Wolfram Arnold Nov 11 '13 at 19:47
3

MySql server startup error 'The server quit without updating PID file '

if you have installed mysql from homebrew

close mysql server from preferences of 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/mysql@5.7/5.7.27_1 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql@5.7/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
  • 161
  • 1
  • 11
2

On mac Big Sur and MySQL 5.7, I needed to stop/start with:

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

and

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

This answer came from https://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/

hamx0r
  • 3,521
  • 1
  • 31
  • 38
0
111028 16:57:43 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

Have you set a root password for your mysql installation? This is different to your sudo root password. Try /usr/local/mysql/bin/mysql_secure_installation

Hoppo
  • 1,070
  • 1
  • 13
  • 32