Расположение для mysql.sock в моей системе: / usr / local / mysql5 / mysqld.sock
thrilllap-2:tmp reuven$ mysqld --print-defaults
mysqld would have been started with the following arguments:
--socket=/usr/local/mysql5/mysqld.sock --port=3306
Когда я пытаюсь использовать mysql через sqlalchemy из фляги, яget:
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
Программа mysql правильно подключается к базе данных, как и любой другой клиент mysql в моей системе.
В моем my.cnf указано правильное расположение для сокета
[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
В базовой библиотеке «SQLAlchemy» есть опция, в которой вы можете указать местоположение mysql.sock, но это не доступно через библиотеку sqlalchemy / flask
http://packages.python.org/Flask-SQLAlchemy/config.html
Мои вопросы:
- Откуда sqlalchemy приходит к выводу, что /tmp/mysql.sock является правильным местоположением?
- Есть ли способ изменить значение по умолчанию черезFlash-SQLAlchemy разъем