問題描述
不想本地繼續(xù)Mysql占用大量內(nèi)存。所以準備放到服務(wù)器提供服務(wù),所以就有了遷移需求。但是mysqldump導(dǎo)出后在ubuntu上總是沒法運行,source和mysqldump都行不通。所以自己寫了個代碼,直接改sql文件,做成命令行再來source
正文
def write():
with open('/home/zzb/Data/back.sql' ,'r', encoding='utf8') as f:
data= []
line_in = False
for line in f.readlines():
if line.find('CREATE TABLE `')!=-1 :
line_in = True
data.append(line)
continue
if line.find(') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;')!=-1:
line_in = False
data.append(line.replace('ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci',''))
if line_in:
data.append(line)
if line.find("INSERT INTO")!=-1:
data.append(line)
with open('new.sql','w',encoding='utf8') as wr:
for line in data:
wr.write(line)
效果很好。

執(zhí)行過程

運行結(jié)果