Posts [ 1 ]

Having to do this recently, I realized this can become a beginners worst nightmare. After 2 days, a complete operating system uninstall/reinstall, multiple MySQL install/uninstall/reinstalls and gem uninstall/reinstalls, I finally have apache/php/MySQL/phpMyAdmin/ and MySQL gems configured, installed and running on my Mac OS X Snow Leopard.

Here is a tutorial that will hopefully come in handy to beginners or anyone else that has the same problems I had (I will also provide various resources at the end of this tutorial). However, it’s mostly oriented towards beginners.

This tutorial does not cover rails installation.

First of all, this tutorial is intended for people using Mac OS X Snow Leopard looking to download the 64 bit versions of MySQL and the 2.8.1 MySQL gem. Here is my current set up, so I can’t guarantee it will work for people with older set ups, but if you have a very similar set up this should work just fine:

You shouldn't have MySQL, phpMyAdmin, or MySQL gem yet. The above is to show you what I have at the end of this tutorial and what rails version I intend to use. The ruby version should be a prerequisite though, you need that 64 bit version (the 64 bit 1.8.7 version comes with snow leopard).

This will require use of the terminal/command line, found in Applications/Utilities/Terminal.

Since pretty much all the command line commands and configuring requires root permissions or using the ‘sudo’ (superuser do) command, It will be easier to just open the terminal and type ‘sudo –s’ which will start a terminal session acting as root user. You will have to enter your password to do so.

From here on, I’m assuming that you will type ‘sudo –s’ to start a session as root user, otherwise most of these commands will have to be prefixed with ‘sudo’.

If at any point you don’t know where you are when using terminal, type ‘pwd’ and it will tell you the path to where you are currently in.

Here’s how to find what versions you have if any (go to terminal and type these commands):

to open files in the command prompt(terminal).This assumes you have installed the Unix command for your text editor. Usually, when installing the editor it will ask you if you want to install the editor name command (at least TextMate did) For Instance, I use text mate, so I would do:

mate file_name

Before we begin, one big problem I ran into was that I had previously tried to compile and install mysql, and I wasn’t able to install the mysql package installer because of it. If you have mysql installed which you wish to get rid of and have a new, clean install, this is what you need to do to remove it:

‘rm’ means remove, and –r means recursively, since these are directories it’ll have to recursively remove all files in directories, and –rf, the ‘f’ stands for force, meaning remove write-protected files without prompting.

At this point I’m assuming there is no trace of MySQL anywhere on your system. We want to install this from scratch. We are going to download the MySQL package installer, not install and compile it from source, if you want to do that, here is a good tutorial for that: http://hivelogic.com/articles/compiling ow-leopard

Now, we need to download the package installer, which can be found here.

Download the ‘Mac OS X ver. 10.6 (x86 64-bit), DMG Archive’. You have to either login or create a user name and login I believe, and then it will bring you to a page where you have options of where to install from. This doesn’t really matter, select either http or FTP from locations near you.

When it’s done downloading, the package should open, if not, click on the package from my downloads. You need to install everything in the package in this order: ‘mysql-5.*.*-osx10.6-x86_64.pkg’, then ‘MySQLStartupItem.pkg’, then ‘MySQL.prefPane’.

MySQL should be installed in /usr/local/

Open the terminal and type (be in a root user session, remember 'sudo -s'):

cd /usr/local
ls

You want to cd (change directory) to /usr/local then type 'ls' (list) to see the contents of that directory.

Ok, we need to fix the mysql.sock location in php.ini, which is found in /etc/php.ini

cd /etc/php.ini

We need to replace the three occurrences of ‘/var/mysql/mysql.sock’ with ‘/tmp/mysql.sock’

Change '/var/mysql/mysql.sock' to ‘/tmp/mysql.sock’. After this, there are still two more locations in the php.ini file that need to be changed.

*** Very Important: We now need to create the path to mysql before mysql commands will register and before we can use mysql.

To do this we have to use terminal to open a file named ‘.bash_login’. It is found in your home directory, or ‘/Users/your_user_name’. I’m still assuming you’re in a root user session (accomplished with typing ‘sudo –s’ at the start of working with terminal. If you aren’t do so, other wise you have to prefix things with the ‘sudo’ command).

Now that you’re in the home directory, type ‘ls’. See if a file named ‘.bash_login’ is there. Note the preceding ‘.’, that’s important. If it’s not there, that’s ok, we can make the file.

mate .bash_login

Now inside the file we need to insert this line, to set the path variable:

put that at the end of the file and save it as ‘.bash_login’ to the home directory (remember the preceding period!).

if it’s there, it may be empty or have a line or two in it, that’s fine. If it’s not there, open up a file just like I did above anyways, we will save it to the home directory and then it will be there.

Now the path should be set.

You can now start MySQL by going to the apple icon on your tasks bar then to system preferences. At the bottom of system preferences you should see a tab that says ‘other’ with a mysql icon. Click on that and you will see where you can start/stop mysql.

It should be up, running and working just fine!

To check it out, let’s create a user named root with a password:

mysqladmin –u root password ‘a_password’
mysql –u root –p

The first line created a user named root with the password you gave it. The second will prompt you for the password you just created. Enter the password and you will start a new mysql session.

Testing this, we could drop the database named ‘test’ which is automatically created when mysql is installed.

DROP DATABASE test;

And add a new one:

CREATE DATABASE your_test_db;

Now we are going to install the mysql gem. Here is the easy part, just type this command in and it should be all good:

The sudo only needs to be there if you’re not in a root user session. The above is just one line, no line breaks.

The gem should install, and you should be ready to use MySQL with rails.

For more info on installing mysql, using it, and installing the mysql ruby gem, go here

*Note: The link above takes you to the wiki for installing mysql 32 bit and the mysql 32 bit gem. We just installed the 64bit mysql and gem, so don’t use that gem install command, use the one I provided above. You can use this wiki for some of the mysql commands under the heading ‘Securing your installation’.

Lastly, we are going to install and configure phpMyAdmin, which is a graphical user interface (GUI) for MySQL.

You should download the 3.3.5 zip version (at the time of writing this).

Once you download it and it’s unzipped, we can use some Unix commands to move the contents of the phpmyadmin download into a folder that we will create.

The easier way would be to click on your Macintosh HD icon and drag the phpMyAdmin folder into '/Library/WebServer/Documents' folder. But I believe in the importance of becoming familiar with Unix/Linux shell commands, which this tutorial covers a little of to also help beginners. So I will provide you with that way as well.

Say you drag the phpMyAdmin folder to the desktop. From here, we go to Terminal and first create a new directory named ‘pma’ to put the contents of the phpmyadmin folder. (note: we don’t need to create a name for the new folder, but it will be easier when typing in the url. Plus you will need a directory to specifically put it in.)

cd /Library/WebServer/Documents

We can type ‘ls’ (list) to view the contents.

Remember, if at any point you forgot where you are, just type ‘pwd’ to see the path to where you are. Now to create a new directory, use the make directory command (mkdir)

This copies the contents of phpMyAdmin-3.3.5-english into the ‘pma’ directory found in this path

/Library/WebServer/Documents/pma

Go back to the pma directory

cd /Library/WebServer/Documents/pma
ls

Make sure the contents are there.

Ok now we need to alter and rename a file. While still in the ‘/Library/WebServer/Documents/pma’ directory, there is a file named ‘config.sample.inc.php’ , Let’s open it:

mate config.sample.inc.php

UPDATEThanks to Johan Nyberg, I was informed you should also rename the above "config.sample.inc.php" to just "config.inc.php"... seems obvious enough but I never use phpMyAdmin so I didn't even think twice about it.

We need to enter a string for blowfish encryption. It looks like this:

Make sure all these are there (they probably won't be in that order, that's ok). Some of them will already be there, you just may need to change a thing or two. I think you will have to add the 'user' and 'password' ones yourself though.