【问题标题】:How to refresh Mysql connection?如何刷新Mysql连接?
【发布时间】:2019-01-31 07:32:53
【问题描述】:

我有一个使用 Python + python mysql 连接器 + Mysql 的程序,它安装在网络中并使用相同的数据库。如何在不重新启动其他机器上的程序的情况下刷新连接?

本程序安装在多台机器上,并连接到位于服务器上的同一个 Mysql 数据库。该程序运行正常,但是, 当输入或修改新数据时,一台机器上的“SQL INSERT, UPDATE.... Statments”不会反映在所有其他机器上,直到程序重新启动,这意味着需要一个新的连接来显示新的数据库数据。

所以,我想知道如何在不重新启动其他机器上的程序的情况下刷新连接。

这里是示例连接代码:

import mysql.connector as mc

conn = mc.connect(host='host', user='user', passwd='passw', db='db_name', port=port_number)

cur = conn.cursor()

程序运行时如何刷新此连接?

【问题讨论】:

    标签: python mysql database


    【解决方案1】:

    插入或更新后,您应该进行提交以确保将所有数据写入数据库。然后它将对所有人可见:

    conn.commit()
    

    【讨论】:

      【解决方案2】:

      关闭和重新打开连接也可以解决您的问题, 在循环中查看以下示例

      import mysql.connector as mc
      
      conn = mc.connect(host='host', user='user', passwd='passw', db='db_name', port=port_number)
      
      while True:
          # check if youre connected, if not, connect again
          if (conn.is_connected() == False):
              conn = mc.connect(host='host', user='user', passwd='passw', db='db_name', port=port_number)
      
          cur = conn.cursor()
          sql = "INSERT INTO db_name.myTable (name) VALUES (%(val)s);"
          val = {'val':"Slim Shady"}
          cur.execute(sql,val)
          conn.commit()
          conn.close()
      

      【讨论】:

        猜你喜欢
        • 2014-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多