msgbartop
Just another Geekblog
msgbarbottom

25 Nov 11 Configurando Python para conectarse a MySQL en una Mac

Esto no seria necesario de no ser por lo tedioso que me resulto configurar el modulo mysql-python en una Mac :\.

En Debian seria suficiente con un apt-get por ahi y un dpkg-reconfigure por alla, pero, no era cierto que este sistema era tan facil de usar como lo pintan? …bueno, en realidad si lo es siempre y cuando solo implique hacer click.

En fin, sin mas hablada.

Estoy usando Mac OS X 10.6.8 en una Mac Book Pro…esta contando o esta rajando? …no! estoy pariendo!

MySQL server.

Primero, descargar el dmg para el MySQL server, aca la 5.1.

Montar e instalar el paquete mysql-*, luego MySQLStartupItem.pkg y de ultimo el MySQL.prefPane, este ultimo es util solo para aquellos mortales que necesitan levantar el demonio con un click.

Agregar estos settings para el shell.

vim .bash_profile
PATH="/usr/local/mysql/bin:${PATH}"
alias mysql_stop="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias mysql_start="/Library/StartupItems/MySQLCOM/MySQLCOM stop"

Con esto lo que hacemos es que los cambios tenga efecto inmediatamente.

source .bash_profile

y asi podremos levantar y bajar el server mas “facilmente”.

mysql_stop
mysql_start

MySQL python.

Bajamos el tarball 1.2.3 de aca

cd MySQL-python-1.2.3

En este punto viene la pega, sobre todo con las versiones de Python.

Si va a usar la 2.6 de python, use el compilador 4.2.
Si va a usar la 2.5 de python, use el compilador 4.0.

Para eso cambie el enlace simbolico, pero primero tiene que saber donde esta. Advierto que estoy intentando trabajar con python 2.6.

$ which gcc
/usr/bin/gcc
$ cd /usr/bin
$ ls -l gcc*
lrwxr-xr-x  1 root  wheel       7 Nov 25 14:32 gcc -> gcc-4.0
-rwxr-xr-x  1 root  wheel   97392 Oct 24  2010 gcc-4.0
-rwxr-xr-x  1 root  wheel  166128 Oct 24  2010 gcc-4.2
sudo rm gcc
sudo ln -s gcc-4.2 gcc

Ahora a instalar:

sudo python2.6 setup.py install

Si no le funciono, aun esta la opcion de los mac ports.

Borramos toda la mierda del primer intento.

sudo rm -rf /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQL_python*
sudo port selfupdate
sudo port install py26-mysql

En este punto agradezco a Steve Jobs por haber inventado los ports… a no, mentira el no lo hizo :).

Si despues de instalar y poder cargar el modulillo sin ningun incoveniente, espere, aun puede recibir un error mas si utilizo el port.

Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)

Puede hacer varias cosas: pegarse un tiro en la cabeza o crear un enlace simbolico donde realmente se esta creando, para ellos mirar en /usr/local/mysql/bin/mysql_config donde dice socket=’/tmp/mysql.sock’.

sudo ln -s /tmp/mysql.sock /opt/local/var/run/mysql5/mysqld.sock

La otra opcion (ya debe haberse dado cuenta) es cambiar la ruta en el archivo de configuracion.

socket='/opt/local/var/run/mysql5/mysqld.sock'

y reiniciar el server.

gin@astaroth /tmp $ python2.6
Python 2.6.6 (r266:84292, Jun 13 2011, 12:15:48)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> # just testing...
>>> import _mysql
>>>

No se si soy el unico que ha tenido esta bronca, la verdad si no le sirve a nadie me importa un carajo, a mi si me sirvio.