python - MySQL 服务器消失了 python MySQLdb

标签 python mysql

在我的 python 脚本中,我订阅了一个网络套接字。每当收到数据时,我都会将此数据插入 MySQL 数据库。每秒大约有 100-200 个查询。问题是它工作了一段时间,然后给出错误“错误2006:MySQL服务器已经消失” 我已将 Max_allowed_pa​​ckets 增加到 512M。但没有成功。

这是我的代码。

def db_entry(threadName, _data):
_time = time.strftime('%Y-%m-%d %H:%M:%S')


#print ("starting new thread...")

for data in _data:
    #print (data)
    sql = "INSERT INTO %s (Script_Name, Lot_Size, Date, Time, Last_Price, Price_Change, Open,High, Low, Close, Volume, Buy_Quantity,  Sell_Quantity) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" %("_" + str(data['instrument_token']), data['instrument_token'], 1, datetime.datetime.today().strftime("%Y-%m-%d"), _time, data['last_price'], data['change'], data['ohlc']['open'], data['ohlc']['high'], data['ohlc']['low'], data['ohlc']['close'], data['volume'], data['buy_quantity'], data['sell_quantity'])


    cursor.execute(sql)
    # Commit your changes in the database
    db.commit()

def on_tick(tick, ws):
thread_name = "Thread" + str(thread_count + 1)
try:
    _thread.start_new_thread(db_entry,(thread_name,tick, ))
except exception as e:
    print (e)
    raise

def on_connect(ws):
# Subscribe to a list of instrument_tokens (RELIANCE and ACC here).
ws.subscribe(instrument_token)

# Set RELIANCE to tick in `full` mode.
ws.set_mode(ws.MODE_FULL,instrument_token)

# Assign the callbacks.
kws.on_tick = on_tick
kws.on_connect = on_connect


kws.enable_reconnect(reconnect_interval=5, reconnect_tries=50)

# Infinite loop on the main thread. Nothing after this will run.
# You have to use the pre-defined callbacks to manage subscriptions.
kws.connect()

提前致谢。 :)

最佳答案

documentation MySQL开发人员提供的文档在这一点上非常清楚。有可能的是,其中一些 MySQL 查询的运行速度比其他查询慢,因为它们正在等待轮到插入数据。如果他们等待太久,MySQL 将关闭他们的连接。默认情况下,MySQL 的 wait_timeout 为八小时(28800 秒)。 MySQL 配置是否已调整?为MySQL分配了多少硬件?

一般情况下,查看所有的超时配置。阅读并理解它们。不要简单地复制并粘贴博主的所有性能调整,例如博客。

关于python - MySQL 服务器消失了 python MySQLdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470368/

相关文章:

php mysql while - 当条件相同时循环

python - 总分配超过堆内存的 95.00%(960,285,889 字节)- pyspark 错误

python - 有人能解释一下python索引语法中的第三个表达式代表什么吗?

php - 如何修复错误 "CDbCommand ... SQLSTATE[42000]: Syntax error or access violation: 1064"

mysql - 如何在 MySQL 中永久启用 event_scheduler

mysql - 复合键 - 一个外键,另一个自动递增

python - 了解CPU和进程之间的关系

将 json 解析为 avro 模式 : avro. schema.SchemaParseException 时出现 Python 异常:没有 "type"属性

python - 有效地将带有嵌入数组的字典列表转换为 DataFrame

mysql - NodeJS 将批量值插入 MySQL