我有一个很大的问题,最近提出了Python(3.4)SqlAlchemy,项目非常依赖于此。
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
之前出现以下错误:
File "/home/dev/venv/project/lib/python3.4/site-packages/sqlalchemy/util/queue.py", line 145, in get
raise Empty
sqlalchemy.util.queue.Empty
我完全不知道为什么会出现这个问题,而且它变得非常负担。如果我连接SQLLite数据库,它就可以工作。
这里是我用于连接的基本字符串:
mysql:///username:password@redacted:3306/inventory
已移除凭据。
数据库配置从磁盘上的YAML文件加载,并经过验证符合预期。
围绕连接的所有单元测试都已通过,但我只测试了SQLLite。
以下是用于连接&的代码。创建数据库及其元素:
self.database_config = {
'SQLALCHEMY_DATABASE_URI': self.config['databases']['source']['url'],
# 'SQLALCHEMY_BINDS': {
# 'discard': self.config['databases']['discarded-items']['url']
# }
}
try:
db.init(config=self.database_config, Model=Model)
# todo check if db exists
logger.debug("Database Initialized!")
db.create_all()
logger.debug("Database Created")
return True
except SQLAlchemyError as ex:
logger.error(ex)
logger.info("Application config: {0}\nConfig Location: {1}\nDatabase Config: {2}".format(self.config,
self.config_location,
self.database_config))
raise ex
如果我能得到任何帮助,那就太棒了!它一直很头疼,真的很想解决这个问题!