Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lỗi SQLAlchemy Máy chủ MySQL đã biến mất

SQLAlchemy hiện có một bài viết tuyệt vời về cách bạn có thể sử dụng pinging để tỏ ra bi quan về độ mới của kết nối của bạn:

http://docs.sqlalchemy.org/en /latest/core/pooling.html#disconnect-handling-pessimistic

Từ đó,

from sqlalchemy import exc
from sqlalchemy import event
from sqlalchemy.pool import Pool

@event.listens_for(Pool, "checkout")
def ping_connection(dbapi_connection, connection_record, connection_proxy):
    cursor = dbapi_connection.cursor()
    try:
        cursor.execute("SELECT 1")
    except:
        # optional - dispose the whole pool
        # instead of invalidating one at a time
        # connection_proxy._pool.dispose()

        # raise DisconnectionError - pool will try
        # connecting again up to three times before raising.
        raise exc.DisconnectionError()
    cursor.close()

Và một bài kiểm tra để đảm bảo những điều trên hoạt động:

from sqlalchemy import create_engine
e = create_engine("mysql://scott:[email protected]/test", echo_pool=True)
c1 = e.connect()
c2 = e.connect()
c3 = e.connect()
c1.close()
c2.close()
c3.close()

# pool size is now three.

print "Restart the server"
raw_input()

for i in xrange(10):
    c = e.connect()
    print c.execute("select 1").fetchall()
    c.close()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách khởi động máy chủ MySQL trên Windows XP

  2. SQLException:không thể sử dụng phương thức executeQuery để cập nhật

  3. mysql chọn các bản ghi lớn hơn 3 tháng

  4. Xuất tệp Excel bằng PHP sau khi echo

  5. Hàm FIELD của Doctrine 2 theo thứ tự