MySQL does not start when upgrading OSX to Yosemite or El Capitan

MysqlMacosOsx Yosemite

Mysql Problem Overview


I know similar questions exist, such as MySQL with MAMP does not work with OSX Yosemite 10.10. However, I do have MAMP, nor XAMPP installed on my computer.

When I try to start mySQL from the PrefPane, nothing happens.

When I try to start mqSQL from the command line via sudo /usr/local/mysql/support-files/mysql.server start I get:

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

Any and all help would be appreciated. I can supply any file output necessary.

Mysql Solutions


Solution 1 - Mysql

Open a terminal:

  1. Check MySQL system pref panel, if it says something along the line "Warning, /usr/local/mysql/data is not owned by 'mysql' or '_mysql'

  2. If yes, go to the mysql folder cd /usr/local/mysql

  3. do a sudo chown -R _mysql data/

  4. This will change ownership of the /usr/local/mysql/data and all of its content to own by user '_mysql'

  5. Check MySQL system pref panel, it should be saying it's running now, auto-magically. If not start again.

  6. Another way to confirm is to do a

    netstat -na | grep 3306

It should say:

tcp46      0      0  *.3306                 *.*                    LISTEN

To see the process owner and process id of the mysqld:

ps aux | grep mysql

Solution 2 - Mysql

Long story short you need to create a launch file. So, from Terminal:

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

(If you are not familiar with vi, then press i to start inserting text)

This should be the content of your file:

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

press esc then : wq!enter

Then you need to give the file the right permissions and set it to load on startup.

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

And that is it.

Solution 3 - Mysql

In my case I fixed it doing a little permission change:

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

I hope it helps somebody else...

Note: As per Mert Mertin comment:

> For el capitan, it is sudo chown -R _mysql:_mysql /usr/local/var/mysql

Solution 4 - Mysql

Solved by installing the latest mySQL release, following the instructions here http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

EDIT
As Yosemite gets more popular, more people are stumbling on this question. The answer above has to do with upgrading MySQL, so that it runs. The answer linked by @doc in the comments has to do with getting MySQL to start automatically. These are 2 separate issues.

Solution 5 - Mysql

Execute the following commands from command line...

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

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

and then start the mysql server using

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

Solution 6 - Mysql

The .pid is the processid of the running mysql server instance. It appears in the data folder when mysql is running and removes itself when mysql is shutdown.

If the OSX operating system is upgraded and mysql is not shutdown properly before the upgrade,mysql quits when it started up it just quits because of the .pid file.

There are a few tricks you can try, http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/ failing these a reinstall is needed.

Solution 7 - Mysql

You just need to create the user mysql (mysql installation script creates _mysql)

sudo vipw

duplicate line that contains _mysql

Change for the duplicated line _mysql to mysql

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!

Solution 8 - Mysql

The re-install fixed it because the installer created a new MySQL instance and the symbolic link to /usr/local/mysql now points to a data directory that does not have an existing pid.

It's worth noting that the mysql prefpane and mysql.server script use the hostname for the pid, so changing the hostname may cause issues with the this.

While the prefpane is out of date, it's a nice GUI for someone to start/stop MySQL even if the auto-start function doesn't work.

I've taken a hybrid approach where I've adapted my MySQL install script to use Launchd to auto-start MySQL, but the plist actually calls the mysql.server script. This way the prefpane can still be used to start/stop MySQL on demand, and trying to do a simple MySQL restart won't be too confusing.

Here is script that just enables this Launchd behavior on Yosemite with MySQL already installed: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

Here is the script that handles the entire automated installation of MySQL: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh

Solution 9 - Mysql

You will sometimes miss previous data if you try to install new version.. Please use the following in your terminal and I guarantee that mySql will start running in no time..

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

Remember, it will ask for your Machine password and not mysql password..

Solution 10 - Mysql

I’ve got a similar problem with MySQL on a Mac (Mac Os X Could not startup MySQL Server. Reason: 255 and also “ERROR! The server quit without updating PID file”). After a long trial and error process, finally in order to restore the file permissions, I’ve just do that:

  • launch the Disk Utilities.app
  • choose my drive on the left panel
  • click on the “Repair disk permissions” button

This did the trick for me.

Hoping this can help someone else.

Solution 11 - Mysql

Try this:

sudo mysqld_safe &

Solution 12 - Mysql

Way simplest: copy and paste this into Terminal (but be sure to read more first):

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

This will install and configure everything automagically. The script is provided by MacMiniVault and is available on Github. More information about the mySQL install script on http://www.macminivault.com/mysql-yosemite/.

Solution 13 - Mysql

you want fix it can edit file "/Applications/XAMPP/xamppfiles/xampp" with TextEdit.

Look for text "$XAMPP_ROOT/bin/mysql.server start > /dev/null &"
And add "unset DYLD_LIBRARY_PATH" on top of it. It should look like:

unset DYLD_LIBRARY_PATH
$XAMPP_ROOT/bin/mysql.server start > /dev/null &

hope can help you

Solution 14 - Mysql

None of the above worked.. but installing a new version of MySQL did the trick.

Solution 15 - Mysql

2 steps solved my problem:

  1. Delete "/Library/LaunchDaemons/com.mysql.mysql.plist"

  2. Restart Yosemite

Solution 16 - Mysql

I usually start mysql server by typing

$ mysql.server start

without sudo. But in error I type sudo before the command. Now I have to remove the error file to start the server.

$ sudo rm /usr/local/var/mysql/`hostname`.err

Solution 17 - Mysql

My Mac decided to restart itself randomly; causing a whole slew of errors. One of which, was mysql refusing to start up properly. I went through many SO questions/answers as well as other sites.

Ultimately what ended up resolving MY issue was this:

> 1) Creating the file (/usr/local/mysql/data/.local.pid

> 2) chmod 777 on that file

> 3) executing mysql.server start (mine was > located in/usr/local/bin/mysql.server)

Solution 18 - Mysql

Same happened to me! So I tried to startup again after I had terminated the running mysql application, and that worked!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdam_GView Question on Stackoverflow
Solution 1 - MysqlTommy KingView Answer on Stackoverflow
Solution 2 - MysqlAresView Answer on Stackoverflow
Solution 3 - MysqlWilsView Answer on Stackoverflow
Solution 4 - MysqlAdam_GView Answer on Stackoverflow
Solution 5 - MysqlKayVView Answer on Stackoverflow
Solution 6 - MysqlneilgeeView Answer on Stackoverflow
Solution 7 - MysqlThomas DevView Answer on Stackoverflow
Solution 8 - MysqlJon SchwennView Answer on Stackoverflow
Solution 9 - MysqlVinithView Answer on Stackoverflow
Solution 10 - MysqlClaude COULOMBEView Answer on Stackoverflow
Solution 11 - MysqlEvandro Klimpel BalmantView Answer on Stackoverflow
Solution 12 - MysqlPer Quested AronssonView Answer on Stackoverflow
Solution 13 - MysqlvualoaithuView Answer on Stackoverflow
Solution 14 - MysqljsonView Answer on Stackoverflow
Solution 15 - MysqlAamirRView Answer on Stackoverflow
Solution 16 - MysqlphilippinedevView Answer on Stackoverflow
Solution 17 - MysqlSteversView Answer on Stackoverflow
Solution 18 - MysqlRyan TianView Answer on Stackoverflow