博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python对多个数据库执行mysql的source命令
阅读量:6837 次
发布时间:2019-06-26

本文共 1870 字,大约阅读时间需要 6 分钟。

  hot3.png

#!/usr/bin/env pythonimport mysqlfrom mysql import connectorimport timeimport osdef dowork():    sql_db=("show databases")    cursora=conn.cursor()    cursora.execute(sql_db)        cursorb=conn.cursor()    dbs=[]    for db in cursora:        conn.database=db        cursorb.execute("show tables")        for table in cursorb:            if 'goods_moves' in table:                dbs.append(db)    cursora.close()    cursorb.close()    return dbs#把文件中的sql语句存入字典中,然后每个数据库顺序执行def get_sql():    fp=file("update.sql",'r')    sql={}    count=1    str_sql=str()    for line in fp.readlines():        if line.strip().startswith('/*'):continue        if line.strip().endswith(";"):            sql[count]=str_sql+line            str_sql=''            count=count+1        else:            str_sql=str_sql+line    fp.close()    return sqldef modify_table(dbs,sql):    cursora=conn.cursor()    for db in dbs:        conn.database=db        try:            for k,v in sql.iteritems():                cursora.execute(v)        except Exception:            bad.append(db[0])        else:                print db[0],time.strftime("%k:%M:%S")        conn.commit()    cursora.close()def writeDbToFile(dbs,output):    dbfile=file(output,'w')    for db in dbs:        dbfile.write(db[0]+os.linesep)        dbfile.flush()    dbfile.close()def checkSql(sql):    for k,v in sql.iteritems():        print k,vif __name__ == '__main__':    config={        'user':"root",        'password':'1234456',        'host':'192.168.10.1',        'port':13306,        'buffered':True    }    bad=[]    err=file("error.log",'w')    conn=mysql.connector.connect(**config)    dbs=dowork()    writeDbToFile(dbs,config["host"]+".dbs.txt")    sql=get_sql()    #checkSql(sql)    modify_table(dbs,sql)    err.write(os.linesep.join(bad))    err.close()    conn.close()

转载于:https://my.oschina.net/sskxyz/blog/426890

你可能感兴趣的文章
python Day1作业:用户三次登陆锁定
查看>>
镜像即代码:基于Packer构建阿里云镜像
查看>>
pg_dump 详解/使用举例
查看>>
云栖社区 测试技术社区大群 正式成立!还在等什么,快来加入我们 ...
查看>>
spring cloud微服务分布式云架构-Gateway入门
查看>>
python编程语言基础
查看>>
Java面试笔试题大汇总三(最全+详细答案)
查看>>
书籍:Python机器学习蓝图第2版 Python Machine Learning Blueprints 2nd - 2019.pdf
查看>>
Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
查看>>
PostgreSQL何以支持丰富的NoSQL特性?
查看>>
高性能和可扩展的React-Redux
查看>>
组复制官方翻译五、Group Replication Security
查看>>
spring 注解试事物源码解析
查看>>
推荐一个非常好用的Chrome扩展应用,用于美化Json字符串
查看>>
模板方法模式
查看>>
CSS------当内容超出div宽度后自动换行和限制文字不超出div宽度和高度
查看>>
MySQL优化系列(二)--查找优化(1)(非索引设计)
查看>>
提高WPF程序性能的几条建议
查看>>
nginx常用功能全揭秘
查看>>
Spark(四) -- Spark工作机制
查看>>