Abbey Workshop

Installing MySQL on Mac OS X

This page is intended to document the installatin of MySQL 4.0.x on Mac OS X 10.3 (Panther). The steps for installation are documented in serveral places on the Internet with the best being Apple's devloper site at: http://developer.apple.com/internet/

However, as we all know, things never go exactly as planned and there are always a few minor differences between what someone has documented and what actually works. :-) So I'm writing up this tip to help me if I have have to install and configure MySQL again.

Getting the Software

The MySQL server software can be downloaded from http://www.mysql.com. For the binary installer, select the Installer package from the download page. This will download a disk image you can mount and run the install from.

In addition to the server software, MySQL AB (the developer) has been working on graphical administration tool for MySQL. They have Linux and Windows versions and just recently, someone has offered Mac OS X builds. As of this writing, you can get the Mac version of MySQL Control Center from http://www.pogma.com/fink/MySQLControlCenter-0.9.4.dmg. Be aware that this link could change.

Binary Installation

The disk image includes a readme with details about the install and where files will be installed. Mount the disk image and run the installer. By default everything is installed in the /usr/local/mysql directory. Once you have everthing installed, you need to perform some configuration steps to get everything working.

MySQL Configuration

Setting up a MySQL User

The first step in setting up the software is to setup a special OS X user for the MySQL server to run as. With Panther, a user and a group for MySQL has already been created. So you don't need to do anything.

In previous versions of OS X you had to create this user manually. For the sake of completeness are the set of commands to create a MySQL user and group from the command line.

sudo bash
niutil -create / /groups/mysql
niutil -createprop / /groups/mysql gid 401
niutil -create / /users/mysql
niutil -createprop / /users/mysql gid 401
niutil -createprop / /users/mysql uid 401
exit
				

You can also create the account using the NetInfo Manager utility. The user and group ID do not have to be the same. For more details see the article on Apple's Internet Developer web site: http://developer.apple.com/internet/macosx/osdb.html

Next, you can set the password for the mysql account. To do this, become super user and run the passwd command on the mysql account.

sudo bash
passwd mysql
exit
			

Set the Permissions for the MySQL Data Directory

By default, the data directory for MySQL is: /usr/local/mysql/data. However, the installer assigns ownership to the root user and the wheel group. So you must login again as root and reassign the ownership of this directory. Here are the commands:

sudo bash
chgrp -R mysql /usr/local/mysql/data
chown -R mysql /usr/local/mysql/data
exit
			

Starting the Server

Whew! That's a lot of stuff to be in a position just to start a server.

Start the server using the sudo command. You can either run the command from a prompt or put it in a shell script. This command will start the server in the background as the mysql user.

sudo -u mysql -b /usr/local/mysql/bin/safe_mysqld
			

Setting the Root Password

Now that the server is up, you need to setup some security for the MySQL server. By default, MySQL sets up 2 users, root with no password and a blank user account which allows you to access MySQL without any password. The first order of business is to set the root password. To do this type:

mysqladmin -u root password 'password here'
			

The command line assumes that mysqladmin is in your path which is probably not the case. You can precede the command with the PATH like this: /usr/local/mysql/bin/mysqladmin. Or, add the /usr/local/mysql/bin directory to your PATH environment variable. I would recommend doing the latter to save yourself some typing.

Testing to Make Sure Everything is Working

Now log into MySQL as root. Enter the following command:

mysql -u root -p
Enter Password:
			

Enter the password you set in the previous step. This puts you at a mysql> prompt:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.17-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

			

Note: Each MySQL command must be end with a semi-colon (;). Do not forget this as you enter in commands.

Next, make sure everything is working. To get a listing of all the databases in MySQL type the following:

mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> 
			

You should see two databases as shown above.

Next, delete the blank user account so only the root user, and any other users you add, can access MySQL. To do this type the following command at the MySQL prompt:

mysql> use mysql;
Database changed
mysql> delete from user where User='';
Query OK, 2 rows affected (0.34 sec)
mysql> exit
Bye
			

Once blank account is deleted, you must reload the server for the change to take effect. Type the following at a shell prompt to reload the server:

mysqladmin -u root -p reload
Enter password: 
			

Now when an unauthenticated user tries to access MySQL, the following response is returned:

$ mysql
ERROR 1045: Access denied for user: 'user@localhost' (Using password: NO)
			

That is pretty much it. You should be ready to use your MySQL server and databases at this point.

Stopping the Server

One final point to cover is stopping the server. To do this enter the following command at a shell prompt:

mysqladmin -u root -p shutdown
Enter password: 
$ 040215 21:18:37  mysqld ended
			

This stops the server and closes the databases.

Google
  Web abbeyworkshop.com   

Copyright © Abbey Workshop 2006

Music Only Search
The Black MP3 Album
The MP3 Album Lyrics
Wprld Music Plus
Mp3 Songs Blog
Music Search Store
First Music Search
Mega MP3 Blog
E MP3 BLog
My MP3 Diary
Fast MP3 Finder
My Blog MP3
Mp3 Songs Mart
My MP3 Songs Album
Top Music Group
Mp3 Tune Records
Song Album Guide
Music DataDite
MP3 Buying Guide
Top MP3 Downloads
MP3 Tune Festival
FAST MP3 Downloads
MP3 Mart Online
Upper MP3
Premium MP3 Site
Music Data online
Fine MP3 Audio
Cheap Music Albums
Fine mp3 downloads
World MP3 Music Records
Mp3 Music Data Direct
The Fine Mp3
MP3 Files World
Home Music Store
DatMP3
Fat MP3 Audio
MP3 ZigZag
MP3 Songs Direct
MP3 Tune World
E MP3 Log
Boom MP3 Music
Speedy MP3
Top 20 MP3 music
Deep MP3 World
Deep MP3 Download
Best-20 MP3
Top Twenty MP3
Deep MP3
Big MP3 Guide
Deep MP3 Audio
Mp3 R.O.B.
MP3-Pop Online
Greate-20-MP3
MP3 Appear
3T-MP3