Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQL服务器已经消失了_Python_Mysql_Sqlalchemy_Mod Wsgi_Web.py - Fatal编程技术网

Python MySQL服务器已经消失了

Python MySQL服务器已经消失了,python,mysql,sqlalchemy,mod-wsgi,web.py,Python,Mysql,Sqlalchemy,Mod Wsgi,Web.py,我最近已从本地的web.py/apache设置转移到共享主机 我正在尝试匹配我的家庭配置。一个问题是 弹出的错误是“MySQL服务器已经消失”。 在互联网上搜索时,遇到此错误的人 倾向于在数小时内不活动。这发生在我身上 几秒钟之间 我已经使用mod_wsgi的application()函数示例确认 我实际上是在守护程序模式下运行的。但有一个问题与我有关 如果我将web.ctx.orm吐到错误日志中,它似乎是一个错误 每个请求的新对象。我的sqlalchemy会话对象不应该是相同的吗 页面请求之间

我最近已从本地的web.py/apache设置转移到共享主机 我正在尝试匹配我的家庭配置。一个问题是 弹出的错误是“MySQL服务器已经消失”。 在互联网上搜索时,遇到此错误的人 倾向于在数小时内不活动。这发生在我身上 几秒钟之间

我已经使用mod_wsgi的application()函数示例确认 我实际上是在守护程序模式下运行的。但有一个问题与我有关 如果我将web.ctx.orm吐到错误日志中,它似乎是一个错误 每个请求的新对象。我的sqlalchemy会话对象不应该是相同的吗 页面请求之间

这是我的python代码和apache设置的一部分。有 任何会在我没有的这台新机器上引起问题的东西 在我的家用机器上之前

def load_sqla(handler):
    web.ctx.orm = scoped_session(sessionmaker(bind=engine))
    try:
        try:
            return handler()
        except web.HTTPError:
            web.ctx.orm.commit()
            raise
        except:
            web.ctx.orm.rollback()
            raise
    finally:
        web.ctx.orm.commit()
        # If the above alone doesn't work, uncomment
        # the following line:
        web.ctx.orm.expunge_all()

... urls and controllers ...

app = web.application(urls, globals(), autoreload=False)
app.add_processor(load_sqla)
application = app.wsgifunc()
这是我的apache设置的一部分

WSGIDaemonProcess app processes=1 threads=1 python-path=/home/net/
public_html/myapp
WSGIProcessGroup app
WSGIScriptAlias /myapp /home/net/public_html/myapp/managio.py
<Directory "/home/stratton/public_html/myapp">
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order allow,deny
 allow from all
</Directory> 
WSGIDaemonProcess app processs=1线程=1 python路径=/home/net/
公共html/myapp
WSGIProcessGroup应用程序
WSGIScriptAlias/myapp/home/net/public_html/myapp/managio.py
选项索引多视图跟随符号链接
不允许超限
命令允许,拒绝
通融
检查以下位置的文档:

设置
processs=1
实际上会启用多处理,这可能就是您获得对同一sql连接的并发访问的原因


另外,您似乎正在使用SQLAlchemy,因此在创建引擎时,可以尝试启用QueuePool或NullPool use?

在这种情况下,使用“processs=1”并随后将“wsgi.multiprocess”标志设置为True(如果不是真的)不会有任何区别。它也不会导致多处理保持开启状态,至少在mod_wsgi中不会。唯一的区别是该标志是否设置为真。正如建议的那样,引擎切换到NullPool解决了问题。虽然这可能不是一个永久性的解决方案,但它肯定会缓解开发中的问题,直到我需要切换到高流量生产,并且我可以花时间解决服务器配置问题。谢谢