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.)
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.
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
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;
Symlink the libs to where MySQL-python expects them:
$ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
In your MySQL-python-1.2.2 directory, rebuild your package:
$ sudo python setup.py build
Note: You will receive a warning, ignore it.
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.
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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With