Compiling a Web Development Environment on Mac OS X


Links: Homepage | Downloads | Reference Manual
Dependencies: CMake
Version: 5.5.20

MySQL is an open-source relational database management server (RDBMS). If you've never heard of it, you probably don't need these instructions.

Get the Code

Switch to /usr/local/src and download the source package.

cd /usr/local/src
curl --remote-name

Extract the archive and move into the folder.

tar -xzvf mysql-VERSION.tar.gz
cd mysql-VERSION


Create a folder that will contain your databases. My databases are located in /usr/local/var/mysql. You can place your databases wherever you'd like but make sure you update the path when mentioned in this article.

mkdir -p /usr/local/var/mysql

Set the permissions on the folder.

sudo chown -R mysql /usr/local/var/mysql

Compile and Install

Configure, compile and install into /usr/local/mysql-VERSION.

cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-VERSION \
    -DDEFAULT_COLLATION=utf8_general_ci \
make install

Create a symbolic link that points /usr/local/mysql to /usr/local/mysql-VERSION.

ln -s mysql-VERSION /usr/local/mysql


Add the following lines to your Bash startup script to put MySQL and its Man Pages into your path.

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
echo 'export MANPATH=/usr/local/mysql/man:$MANPATH' >> ~/.bash_profile

Load the new shell configurations.

source ~/.bash_profile


If you are copying the data from a former MySQL installation, you can skip this step. Initialize your database installation.

sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/var/mysql

Manually Starting and Stopping the Server

To start the MySQL server.

sudo -b /usr/local/mysql/bin/mysqld_safe --user=mysql --datadir=/usr/local/var/mysql

To shut down the MySQL server.

sudo /usr/local/mysql/bin/mysqladmin --password shutdown

Secure the Server

The server needs to be running to perform this step which will set a root password and generally secure the server.

sudo /usr/local/mysql/bin/mysql_secure_installation

Automatically Starting the Server at Boot

Create a configuration file for Launchd.

sudo nano /Library/LaunchDaemons/com.mysql.mysqld.plist

Copy and paste the following text into the aforementioned file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">

And finally, execute the following command to register the configuration file with Launchd.

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

If you ever want to stop your MySQL server from automatically starting at boot, issue the following command.

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

Verify the Installation

Log into the database using the MySQL client.

mysql --user=root --password