You can install MySQL on Mac OS X 10.3.x (“Panther”) or newer using a Mac OS X binary package in PKG format instead of the binary tarball distribution. Please note that older versions of Mac OS X (for example, 10.1.x or 10.2.x) are not supported by this package.
The package is located inside a disk image
(.dmg
) file that you first need to mount by
double-clicking its icon in the Finder. It should then mount the
image and display its contents.
When installing from the package version, you should also install the MySQL Preference Pane, which will allow you to control the startup and execution of your MySQL server from System Preferences.
To obtain MySQL, see Section 2.1.3, “How to Get MySQL”.
Before proceeding with the installation, be sure to shut down all running MySQL server instances by either using the MySQL Manager Application (on Mac OS X Server) or via mysqladmin shutdown on the command line.
To actually install the MySQL PKG file, double-click on the package icon. This launches the Mac OS X Package Installer, which guides you through the installation of MySQL.
Due to a bug in the Mac OS X package installer, you may see this error message in the destination disk selection dialog:
You cannot install this software on this disk. (null)
If this error occurs, simply click the Go Back
button once to return to the previous screen. Then click
Continue
to advance to the destination disk
selection again, and you should be able to choose the destination
disk correctly. We have reported this bug to Apple and it is
investigating this problem.
The Mac OS X PKG of MySQL installs itself into
/usr/local/mysql-
and also installs a symbolic link,
VERSION
/usr/local/mysql
, that points to the new
location. If a directory named
/usr/local/mysql
exists, it is renamed to
/usr/local/mysql.bak
first. Additionally, the
installer creates the grant tables in the mysql
database by executing mysql_install_db.
The installation layout is similar to that of a
tar file binary distribution; all MySQL
binaries are located in the directory
/usr/local/mysql/bin
. The MySQL socket file
is created as /tmp/mysql.sock
by default. See
Section 2.1.5, “Installation Layouts”.
MySQL installation requires a Mac OS X user account named
mysql
. A user account with this name should
exist by default on Mac OS X 10.2 and up.
If you are running Mac OS X Server, a version of MySQL should already be installed. The following table shows the versions of MySQL that ship with Mac OS X Server versions.
Mac OS X Server Version | MySQL Version |
10.2-10.2.2 | 3.23.51 |
10.2.3-10.2.6 | 3.23.53 |
10.3 | 4.0.14 |
10.3.2 | 4.0.16 |
10.4.0 | 4.1.10a |
This manual section covers the installation of the official MySQL Mac OS X PKG only. Make sure to read Apple's help information about installing MySQL: Run the “Help View” application, select “Mac OS X Server” help, do a search for “MySQL,” and read the item entitled “Installing MySQL.”
If you previously used Marc Liyanage's MySQL packages for Mac OS X from http://www.entropy.ch, you can simply follow the update instructions for packages using the binary installation layout as given on his pages.
If you are upgrading from Marc's 3.23.x versions or from the Mac OS X Server version of MySQL to the official MySQL PKG, you also need to convert the existing MySQL privilege tables to the current format, because some new security privileges have been added. See Section 4.4.8, “mysql_upgrade — Check Tables for MySQL Upgrade”.
If you want MySQL to start automatically during system startup, you also need to install the MySQL Startup Item. It is part of the Mac OS X installation disk images as a separate installation package. Simply double-click the MySQLStartupItem.pkg icon and follow the instructions to install it. The Startup Item need be installed only once. There is no need to install it each time you upgrade the MySQL package later.
The Startup Item for MySQL is installed into
/Library/StartupItems/MySQLCOM
. (Before MySQL
4.1.2, the location was
/Library/StartupItems/MySQL
, but that
collided with the MySQL Startup Item installed by Mac OS X
Server.) Startup Item installation adds a variable
MYSQLCOM=-YES-
to the system configuration file
/etc/hostconfig
. If you want to disable the
automatic startup of MySQL, simply change this variable to
MYSQLCOM=-NO-
.
On Mac OS X Server, the default MySQL installation uses the
variable MYSQL
in the
/etc/hostconfig
file. The MySQL Startup Item
installer disables this variable by setting it to
MYSQL=-NO-
. This avoids boot time conflicts
with the MYSQLCOM
variable used by the MySQL
Startup Item. However, it does not shut down a running MySQL
server. You should do that yourself.
After the installation, you can start up MySQL by running the following commands in a terminal window. You must have administrator privileges to perform this task.
If you have installed the Startup Item, use this command:
shell>sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
(Enter your password, if necessary)
(Press Control-D or enter "exit" to exit the shell)
If you don't use the Startup Item, enter the following command sequence:
shell>cd /usr/local/mysql
shell>sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell>bg
(Press Control-D or enter "exit" to exit the shell)
You should be able to connect to the MySQL server, for example, by
running /usr/local/mysql/bin/mysql
.
The accounts that are listed in the MySQL grant tables initially have no passwords. After starting the server, you should set up passwords for them using the instructions in Section 2.11, “Post-Installation Setup and Testing”.
You might want to add aliases to your shell's resource file to make it easier to access commonly used programs such as mysql and mysqladmin from the command line. The syntax for bash is:
alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin
For tcsh, use:
alias mysql /usr/local/mysql/bin/mysql alias mysqladmin /usr/local/mysql/bin/mysqladmin
Even better, add /usr/local/mysql/bin
to your
PATH
environment variable. You can do this by
modifying the appropriate startup file for your shell. For more
information, see Section 4.2.1, “Invoking MySQL Programs”.
If you are upgrading an existing installation, note that installing a new MySQL PKG does not remove the directory of an older installation. Unfortunately, the Mac OS X Installer does not yet offer the functionality required to properly upgrade previously installed packages.
To use your existing databases with the new installation, you'll
need to copy the contents of the old data directory to the new
data directory. Make sure that neither the old server nor the new
one is running when you do this. After you have copied over the
MySQL database files from the previous installation and have
successfully started the new server, you should consider removing
the old installation files to save disk space. Additionally, you
should also remove older versions of the Package Receipt
directories located in
/Library/Receipts/mysql-
.
VERSION
.pkg
User Comments
After you have setup mySQL, there is an excellent web-based tool to admin mySQL called phpMyAdmin. It saves you tons of typing or getting lost. It makes managing mySQL a breeze.
http://www.phpmyadmin.net/
It is a php tool, and php is already installed in MacOSX so everything is ready to go, and you don't need to do anything except installing phpMyAdmin.
If you're trying to use MySQL with phpMyAdmin, you've set up the phpMyAdmin's config.inc.php, and you're getting an error saying "Client does not support authentication protocol requested by server; consider upgrading MySQL client", you need to set the password on the mysql command line using the OLD_PASSWORD('password') routine.
For example:
tcsh: mysql
mysql> SET PASSWORD FOR root@localhost = OLD_PASSWORD('mypassword');
I'm a little new to working with MySQL on our new Xserve G5. I was expecting a horrible time installing this, tons of files that would need to be compiled and installed in Terminal. I'm not bad in Terminal, but what a waste of time when it could be so much easier. Anyways, I just wanted to leave this review saying that this was EXTREMELY EASY to install, and it works GREAT! Thanks MySQL for all the time you spent on making a wonderful easy installer application, and GREAT documentation as well!
Thanks,
Paul
For those of you running on Mac OS 10.3 (Panther) like myself, this tip may save you a few hours...
I installed the MySQL 5 package from this website, and when I first tried to connect to the database using php4 (the preinstalled version that comes with MacOSx) I got an "or die" error that looked something like this -->
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client
Solution:
save yourself some trouble and just read this...
http://dev.mysql.com/doc/refman/5.0/en/old-client.html
This is just a quick and dirty fix. A better solution would be to upgrade php to version 5, but to do so you would also have to update apache as well. If your lazy like me this will do just fine.
Another approach is via MacPorts (http://www.macports.org) or Fink (http://www.finkproject.org), though there may be a small lag between the latest version of MySQL and the version available in the MacPorts and Fink repositories.
Add your own comment.