La ubicación de mysql.sock en mi sistema es /usr/local/mysql5/mysqld.sock¿Es posible usar Mysql con SqlAlchemy y Flask si mi socket mysql no está en/tmp?
thrilllap-2:tmp reuven$ mysqld --print-defaults
mysqld would have been started with the following arguments:
--socket=/usr/local/mysql5/mysqld.sock --port=3306
Cuando trato de usar MySQL a través de sqlalchemy del frasco, me sale:
File "build/bdist.macosx-10.6-intel/egg/MySQLdb/connections.py", line 187, in __init__
sqlalchemy.exc.OperationalError: (OperationalError) (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)") None None
El programa mysql se conecta correctamente a la base de datos, al igual que cualquier otro cliente mysql en mi sistema.
Mi my.cnf tiene la ubicación correcta para la toma
[client]
port = 3306
socket = /usr/local/mysql5/mysqld.sock
[safe_mysqld]
socket = /usr/local/mysql5/mysqld.sock
[mysqld_safe]
socket = /usr/local/mysql5/mysqld.sock
[mysqld]
socket = /usr/local/mysql5/mysqld.sock
port = 3306
La base de la biblioteca "SQLAlchemy" tiene una opción donde se puede especificar la ubicación de la mysql.sock, pero esto no se expone a través la biblioteca sqlalchemy/frasco
http://packages.python.org/Flask-SQLAlchemy/config.html
Mis preguntas:
- ¿Dónde consigue sqlalchemy la idea de que /tmp/mysql.sock es la ubicación correcta?
- ¿Hay una manera de cambiar el valor por defecto a través del conector de Flash-SQLAlchemy