4
sqlalchemy中是否有開發人員指定多個mysql主機嘗試連接的方法,如果第一個連接失敗,它會自動故障轉移到第二個?如何在sqlalchemy中配置故障轉移
sqlalchemy中是否有開發人員指定多個mysql主機嘗試連接的方法,如果第一個連接失敗,它會自動故障轉移到第二個?如何在sqlalchemy中配置故障轉移
我有一個MySQL的解決方案中使用名爲MySQL連接/ Python的誰是連接的驅動程序()函數可以接受的參數命名故障轉移。
希望未來能幫到一些人。
這裏是參考鏈接:
https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html
在這裏,我的測試代碼
global engine, session, metadata
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import scoped_session, sessionmaker
import mysql.connector
import time
SQLALCHEMY_DATABASE_URI='mysql+mysqlconnector://test:[email protected]:24801/test?charset=utf8'
SQLALCHEMY_POOL_SIZE=45
SQLALCHEMY_POOL_MAX_OVERFLOW=45
connect_args={
'raise_on_warnings': True,
'failover': [{
'user': 'test',
'password': 'test2013',
'host': '172.16.1.160',
'port': 24802,
'database': 'test',
}, {
'user': 'test',
'password': 'test2013',
'host': '172.16.1.160',
'port': 24803,
'database': 'test',
}]
}
engine = create_engine(SQLALCHEMY_DATABASE_URI,connect_args=connect_args,
pool_size=SQLALCHEMY_POOL_SIZE,
max_overflow=SQLALCHEMY_POOL_MAX_OVERFLOW)
session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
metadata = MetaData(bind=engine)
base= 2000
while True:
base+=1
info = "info%s"%base
print info
results = session.execute("insert into t1 values(%s,'%s')"%(base,info))
print results
session.commit()
time.sleep(10)
你找到這個答案? – Overture
不,我結束了使用mysql-proxy來解決它 – bwbrowning
檢查出https://haalchemy.readthedocs.io/en/latest/從SQLAlchemy的作者 –