- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 Python Tornado 框架编写的应用程序。
我编写了一个脚本,通过隧道监听消息,当我的条件满足时,脚本连接到 MySQL 并执行插入或更新,但很长时间后,我收到 MySQL 已断开连接的错误。
听隧道我使用鼠兔模块。所以当一切发生时我明白了
Pika: Could not connect to host 127.0.0.1 on port 5671
MySQL: (2006, "MySQL server has gone away (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))")
我的代码如下:
import pika
def main():
credentials = pika.PlainCredentials('user', 'password')
try:
cp = pika.ConnectionParameters(
host='127.0.0.1',
port=5671,
credentials=credentials,
ssl=False,
)
connection = pika.BlockingConnection(cp)
channel = connection.channel()
def callback(ch, method, properties, body):
if 'messageType' in properties.headers:
message_type = properties.headers['messageType']
if message_type in allowed_message_types:
result = proto_file._reflection.ParseMessage(descriptors[message_type], body)
if result:
result = protobuf_to_dict(result)
if message_type == '1':
Model.message_event(data=result)
else:
print('Message type not in allowed list = ' + str(message_type))
print('continue listening...')
channel.basic_consume(callback, queue='queue', no_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
except Exception as e:
print('Could not connect to host 127.0.0.1 on port 5671')
print(str(e))
这是连接到 MySQL 的 message_event 模型
import pymysql
import pymysql.cursors
class Model(object):
def __init__(self, conf):
self.conf = conf
conv = pymysql.converters.conversions.copy()
conv[246] = Decimal
conv[10] = str
self.mysql = {pymysql.connect(
host=self.conf['host'],
user=self.conf['user'],
password=self.conf['password'],
db=self.conf['db'],
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
autocommit=self.conf['autocommit'],
conv=conv)}
def message_event(self, data):
with self.mysql.cursor() as cursor:
// here doing following operations
// select, insert or update
cursor.close()
// and after sometime i get this
Pika: Could not connect to host 127.0.0.1 on port 5671
MySQL: (2006, "MySQL server has gone away (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))")
要点一旦连接到隧道,必须无限监听消息并在MySQL内部操作消息,但一段时间后连接就会丢失。
如果可能的话,在不更改 MySQL 服务器配置的情况下,我们将不胜感激任何解决此问题的想法。
最佳答案
我想发布我的有效答案,只有这个解决方案对我有用
连接mysql之前检查连接是否打开,如果没有则重新连接
if not self.mysql.open:
self.mysql.ping(reconnect=True)
关于mysql - PyMySQL==0.7.11,MySQL服务器消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55606405/
如何使用我的服务器安装 pymysql。 -bash-3.2$ python script.py 'US' Trace back (most recent call last): File "scr
我是 Python 和 MySQL 新手,所以我正在使用只读帐户进行练习。我正在尝试创建一个可执行脚本,该脚本基本上要求提供名字、姓氏,然后将它们插入查询并返回结果。以下是我所拥有的以及我收到的错误:
伙计们!希望有人能帮我解决这个问题。 我通过 SQLAlchemy 执行一个查询,该查询返回 ~6kk 行(它是历史数据),我需要在 python 脚本上处理这些行。我有一些函数可以使用 pandas
导入 pymysql 给出错误 AttributeError: module 'pymysql.constants.ER' has no attribute 'CONSTRAINT_FAILED' 在
我正在尝试运行通过 PyMySQL 连接到 MySQL 数据库的 Python 脚本。该脚本有效: import pymysql cnx = pymysql.connect(read_default_
在flask中,我计划使用MySQL,因此: 从flaskext.mysql导入MySQL 但是,当我运行 Flask 应用程序时,出现以下错误: pymysql.err.OperationalErr
这可能是一个愚蠢的问题,但我在 pymysql 的文档中找不到信息。 pymysql 默认游标类是什么?当我在连接到数据库时未指定游标类时,我的查询会为响应中的每一行返回一个列表。 当我指定 pymy
我做了这样的事情: sql_query1=... sql_query2=... cur.execute(sql_query1,(actorId1,actorId2)) results1=cur.fet
我正在尝试运行一个 Python 脚本,该脚本使连接永久打开,并响应在脚本之外所做的更改。 例如: 数据脚本:接受表单提交并将表单数据提交到数据库 Worker 脚本:监控数据库中的新表单帖子并采取相
我有以下简单的代码来测试我的 Python Mysql 连接。 connection = pymysql.connect(host = "localhost",
基本上,我正在尝试使用 pymysql 事务设置 PyQt5 表单的保存方法。保存意味着对新记录的一次插入查询,以及作为插入结果的两次更新。方法运行顺利,但是待更新的两个表没有变化。没有出现错误,插入
我正在尝试使用已在函数中设置的全局游标在函数内运行更新查询主体中的“with MySQLdb.connect”语句。由于某种原因,主体中的更新查询可以工作,而函数中的查询不起作用:(有没有办法获得错误
我已经尝试了我能找到的所有答案来安装 PyMySQL,例如如下所示: sudo pip install PyMySQL Downloading/unpacking PyMySQL Downloadin
我遇到了以下问题:是否有一个使用 windows-1251 编码的站点。我正在使用 BeautifulSoup 库来获取您需要的俄语数据。为了测试记录在文件中的值,它们会正确显示。然后我尝试将此数据记
我正在尝试使用准备好的语句将数据插入数据库。我在数据库中的所有列都是 VARCHAR,但 PyMySQL 给出以下错误: Not all arguments converted during stri
这是我的代码: import pymysql import pymysql.cursors # ... for w in aList: param = w cursor.execute("SE
我执行了下面的代码,它显示了这个错误。 这是代码片段。 import pymysql mydb = pymysql.connect( database = "q11", user =
这个问题已经有答案了: Python 3: ImportError "No Module named Setuptools" (23 个回答) 已关闭 8 年前。 所以我对python完全不熟悉,想安
我收到以下错误: if 'ShazK01' in LogRef.values(): AttributeError: 'list' object has no attribute 'values' 运行
conn = pymysql.connect(host = '127.0.0.1', unix_socket = '/var/run/mysqld/mysqld.sock',
我是一名优秀的程序员,十分优秀!