廢話很少說,上腳本先:python
#encoding=utf8 import mysql.connector,re #定義一個列表,用於保存數據庫內全部表的名稱; tl = [] #定義連接信息 config={'host':'192.168.1.254' 'user':'帳號', 'password':'密碼', 'port':3306 'database':'數據庫名', 'charset':'utf8' } #測試鏈接 try: cnn=mysql.connector.connect(**config) except mysql.connector.Error as e: print('connect fails!{}'.format(e)) #顯示全部表 sv = "show tables" #拿到查詢的返回結果 cu = cnn.cursor() cu.execute(sv) tlvalue = cu.fetchall() #因爲tlvalues列表內包含的是元組信息; #因此咱們將其轉換爲列表信息而且添加到我前面定義的tl列表內; for i in tlvalue: tl.append(i[0]) #循環更改表存儲引擎 for a in tl: cu.execute("ALTER TABLE %s ENGINE=INNODB" % a) #操做完成後釋放全部鏈接; cu.close() cnn.close()
實現方法很是簡單,循環的使用與列表的append方法。mysql
在數據量達到千萬級別的表時,請不要在線修改表存儲引擎,以避免阻塞生產庫的操做。web
若是想online更改千萬級甚至億級數據表,思想有2種:sql
一、用os.system()方法配合 pt-online-schema-change 工具實如今線轉換。數據庫
二、本身用觸發器實現全部更改原理。app
以上,繼續上班去咯!你們千萬別告訴Candy的BOSS哦......工具
(ღ 〝 3 〞 ღ)測試