Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I install MySQL and the Python MySQL package on OS X Leopard? Or how do I learn about being a web developer using OS X?

I'm new to the Mac OS X, and I'm just about ready to throw my brand new MacBook Pro out the window. Every tutorial on setting up a Django development environment on Mac OS X Leopard is insidiously wrong. They are all skipping over one step, or assuming you have setup something one way, or are just assuming that I know one thing that I must not.

I'm very familiar with how to setup the environment on Ubuntu/Linux, and the only part I'm getting stuck on with OS X is how to install MySQL, autostart it, and install the Python MySQL bindings. I think my mistake was using a hodgepodge of tools I don't fully understand; I used fink to install MySQL and its development libraries and then tried to build the Python-MySQL bindings from source (but they won't build.)

UPDATE: I installed the binary MySQL package from http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg, and I got MySQL server running (can access with admin.) The MySQL version I got from port was rubbish, I could not get it to run at all.

I modified the source for the Python-MySQL package as per the answer I chose, but I still got compilation errors that I listed in the comments. I was able to fix these by adding /usr/local/mysql/bin/ to my path in my "~/.profile" file. " PATH=/usr/local/mysql/bin:$PATH "

Thanks for the help, I was very wary about editing the source code since this operation had been so easy on Ubuntu, but I'll be more willing to try that in the future. I'm really missing Ubuntu's "apt-get" command; it makes life very easy and simple sometimes. I already have an Ubuntu VMware image running on my Mac, so I can always use that as a fallback (plus it more closely matches my production machines so should be a good test environment for debugging production problems.)

like image 263
MikeN Avatar asked Dec 27 '08 22:12

MikeN


2 Answers

Did the MySQL and MySQL-dev installations go smoothly? Can you run MySQL, connect to it and so on? Does /usr/local/mysql/include contain lots of header files? (I've got 46 header files there, for reference).

If so, MySQL should be good to go. There are still a few manual steps required to compile MySQL-python, however.

This is a decent guide: I've included the salient steps below.


  1. Download the MySQL-python source (v1.2.2 at time of writing: all subsequent instructions are for this version)

    $ tar xzf MySQL-python-1.2.2.tar.gz && cd MySQL-python-1.2.2
    
  2. Edit _mysql.c: remove lines 37-39 and change lines 481-482. Here's the diff:

    37,39d36
    < #ifndef uint
    < #define uint unsigned int
    < #endif
    484,485c481,482
    <         uint port = MYSQL_PORT;
    <         uint client_flag = 0;
    ---
    >         unsigned int port = MYSQL_PORT;
    >         unsigned int client_flag = 0;
    
  3. Symlink the libs to where MySQL-python expects them:

    $ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
    
  4. In your MySQL-python-1.2.2 directory, rebuild your package:

    $ sudo python setup.py build
    

    Note: You will receive a warning, ignore it.

  5. Install the package:

    $ sudo python setup.py install
    

As for starting MySQL, there are instructions here on starting it as a service. Personally, I just run

sudo mysqld_safe 

manually, backgrounding it with ^Z and bg once I've put in my password.

like image 50
James Brady Avatar answered Oct 26 '22 23:10

James Brady


You can use the BSD-alike(?) http://macports.org, which provides gentoo-like build-it-yourself installations of a wide swath of software you'd expect to find in a Linux distro.

Alternatively you could just run Ubuntu in a virtual machine as your test stage.

It's honestly a simple

# port install <pkgname>

like image 30
James Cape Avatar answered Oct 26 '22 22:10

James Cape