注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oracle、MySQL资料及经验

.

 
 
 

日志

 
 

配置多个数据库连接,实现读写分离操作和高可用  

2016-11-03 11:20:43|  分类: Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#已知有MySQL主从复制,10.1.5.112为主库,10.1.5.117为从库,Python使用pymysql包连接MySQL数据库,对数据库相关的操作,写函数如下:
# cat mysqldb.py   
import pymysql

def connDB_write():                            #连接数据库,写连接
    #conn=pymysql.connect(host="10.1.5.112",port=3307,user="system",passwd="123456",db="testdb")
    try:
        conn=pymysql.connect(host="10.1.5.112",port=3307,user="system",passwd="123456",db="testdb")
    except:
        conn=pymysql.connect(host="10.1.5.117",port=3307,user="system",passwd="123456",db="testdb")
    cur=conn.cursor();
    return (conn,cur);

def exeDml(conn,cur,sql):              #增删改操作,truncate也可以,drop没验证。
    cur.execute(sql);
    conn.commit()

def exeSelect(cur,sql):                   #查找操作          
    cur.execute(sql);
    return (cur)

def connClose(conn,cur):               #关闭连接,释放资源
    cur.close();
    conn.close();

def connDB_read():                            #连接数据库,读连接
    #conn=pymysql.connect(host="10.1.5.117",port=3307,user="system",passwd="123456",db="testdb")
    try:
        conn=pymysql.connect(host="10.1.5.117",port=3307,user="system",passwd="123456",db="testdb")
    except:
        conn=pymysql.connect(host="10.1.5.112",port=3307,user="system",passwd="123456",db="testdb")
    cur=conn.cursor();
    return (conn,cur);
#把数据库的ip弄成变量,然后使用random随机从多个ip中拿出一个,就可以实现负载均衡


#开始测试=====================================
# 使用写连接进行读写操作
>>> from mysqldb import *
>>> conn,cur=connDB_write()
>>> sql="insert into t1 values (1002,'ttt2','*83AE809DDACAF96AF0FD78ED04B6A265E05AA257','*')"   
>>> exeDml(conn,cur,sql)
>>> sql="select * from t1 where id=1002"
>>> exeSelect(cur,sql).fetchall()
((1002, 'ttt2', '*83AE809DDACAF96AF0FD78ED04B6A265E05AA257', '*'),)
>>> connClose(conn,cur)
>>> 

# 使用读连接进行读操作
>>> from mysqldb import *
>>> conn,cur=connDB_read()
>>> sql="select count(1) from t1"  
>>> exeSelect(cur,sql).fetchall()
((6,),)
>>> connClose(conn,cur)
>>> 


  评论这张
 
阅读(38)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017