私のシステムでの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
フラスコからsqlalchemyを介してmysqlを使用しようとすると、次のようになります。
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/フラスコライブラリでは公開されません。
http://packages.python.org/Flask-SQLAlchemy/config.html
私の質問:
- sqlalchemyは、/ tmp / mysql.sockが正しい場所であるという考えをどこで得ますか?
- Flash-SQLAlchemyコネクタを介してデフォルトを変更する方法はありますか