Installing MySQL on OS X

Version 2
Last Modified: Nov 24, 2013 4:14 PM

This User Tip describes how to download, install, and setup MySQL for use on OS X. It includes an optional section for Perl support. Please read through the entire User Tip before starting.

 

Requirements:

  1. Basic understanding of Terminal.app and how to run command-line programs.
  2. Basic usage of vi. You can substitute nano if you want.

Optional:

  1. Xcode (with command line tools) is required for the MySQL Perl driver.

 

Lines in bold are what you will have to type in at the Terminal.

Replace <your local host> with the name of your machine. Ideally, it should be a one-word name with no spaces or punctuation. It just makes life easier.

Replace <your short user name> with your short user name.

 

Download MySQL from a local mirror. You want the Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive. At the time of writing this User Tip, the current version is 5.5.34. By the time you read this, there may be a newer version to use instead. Open the archive mysql-5.5.34-osx10.6-x86_64.dmg.

 

Install only the mysql-5.5.34-osx10.6-x86_64.pkg package. Ignore everything else.

 

MySQL comes with a Preference Pane and Startup Item that are based on technologies that Apple deprecated years ago. If you install the Preference Pane or Startup Item, your MySQL installation could fail at some point in the future when Apple removes support for Startup Items. This was reported to MySQL a long time ago. Until MySQL gets around to fixing this bug, we will have to do it ourselves.

 

Create a launchd config file for MySQL:

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

 

Use the following content:

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

 

(if you are new to vi, type 'i' to enter insert mode. Then ⌘-v to paste the above content. Press escape to get back to command mode. Then type 'ZZ' to save and exit.)

 

The default path for the MySQL socket is not appropriate for MacOS X. Until it is changed, MySQL will not be able to communicate with PHP should you choose to enable that. Let's fix this now.

 

Create a config file for MySQL that matches the Apple PHP build:

sudo vi /etc/my.cnf

 

Use the following content:

[client]

socket=/var/mysql/mysql.sock

 

[mysqld]

socket=/var/mysql/mysql.sock

 

Start MySQL:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

 

MySQL is now up and running. Don't forget to set a root password and configure your users if this is all you need.

 

If you need to configure Perl support for MySQL, don't setup a root password just yet. Having no password will make testing the Perl module easier. Keep reading...

You will need Xcode and command line tools for this part.

 

Download the MySQL Perl driver.

 

Extract the archive with:

tar zxvf DBD-mysql-4.020.tar.gz

 

Move into the directory:

cd DBD-mysql-4.020

 

First, fix the MySQL client library. (credit)

 

For Lion, type:

sudo install_name_tool -id /usr/local/mysql-5.5.34-osx10.6-x86_64/lib/libmysqlclient.18.dylib /usr/local/mysql-5.5.34-osx10.6-x86_64/lib/libmysqlclient.18.dylib

 

Next, build DBD::mysql with:

perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config --testsocket=/var/mysql/mysql.sock --testuser=root

make

make test

sudo make install

 

 

Now you can set a root password and configure your users.