我系统上 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/flask 库公开
http://packages.python.org/Flask-SQLAlchemy/config.html
我的问题:
- sqlalchemy 从哪里得到 /tmp/mysql.sock 是正确位置的想法?
- 有没有办法通过 Flash-SQLAlchemy 连接器更改默认值