python 手動同步mysql表結構指令碼

2021-07-28 05:35:22 字數 1743 閱讀 4214

經常研發忘記提交資料庫更新指令碼,寫了手動指令碼同步,輸入表名和列名即可把研發新增的列同步到測試庫

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import mysqldb

class addcolumn():

#從研發環境查詢列的型別和長度

def querycolumn(self, colnum, tablename,dbname):

queryc = mysqldb.connect(

host='192.168.20.151',

port=3306,

user='root',

passwd='111111',

db='information_schema',

)curl = queryc.cursor()

curl.execute("select column_type from columns where table_name="+"'"+tablename+"'"+"and column_name=" +"'"+ colnum +"'"+ "and table_schema="+"'"+dbname+"'")

result = curl.fetchone();

return result

#拼接生成執行的sql語句

def addc(self):

tablename = raw_input("enter tablename: ")

column = raw_input("enter column: ")

result=self.querycolumn(column, tablename, 'zlax_business')

type = result[0]

#length = result[1]

#length=bytes(length)

type = bytes(type)

#print 'alter table '+tablename+' add column '+column+' '+type+';'

return 'alter table '+tablename+' add column '+column+' '+type+';'

#執行更新語句到測試庫

def conn(self,sqlstr):

conn = mysqldb.connect(

host='192.168.20.155',

port=3306,

user='test',

passwd='test123',

db='zlax_test',

)cur = conn.cursor()

cur.execute(sqlstr)

#寫sql更新語句到檔案中

def writelog(self,filename):

logconent=self.addc()

file_object = open(filename, 'a')

file_object.write(logconent)

file_object.close()

return logconent

if __name__=="__main__":

a=addcolumn()

sqlstr = a.writelog('e://update_sql0310..txt')

a.conn(sqlstr)

不需手動鎖表同步mysql資料庫

不需手動鎖表同步 mysql 資料庫確保系統安裝有perl dbd mysql yum install perl dbd mysql 安裝xtrabackup wget 執行 rpm ivh percona xtrabackup 2.0.7 552.rhel5.x86 64.rpm 很容易就安裝好所...

mysql 手動安裝 手動安裝MySQL8 0

首先跟大家嘮一嘮家常,隨著mysql迅速的更新,mysql突飛猛進已經更新到了8.0版本,那麼它和我們之前用的5.x版本有什麼明顯的區別那?首先給大家看下mysql5.x自帶表的查詢速度 之後獻上mysql8.0的自帶表的查詢速度 一樣的資料結果顯而易見,mysql8.0的坑我是走了個遍,為了讓大家...

手動匯入mysql

命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 2,匯出資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 如我輸入的命令...