Можно ли использовать Mysql с SqlAlchemy и Flask, если мой сокет mysql не находится в / tmp?

Расположение 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 из колбы, Я получаю:

  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

Мои вопросы :

  1. Откуда sqlalchemy приходит к выводу, что /tmp/mysql.sock является правильным местоположением?
  2. Есть ли способ изменить значение по умолчанию через соединитель Flash-SQLAlchemy

15
задан 6 June 2011 в 03:15
поделиться