Mysql大量匯入多個時間的SQL

來源:互聯網
上載者:User

標籤:rip   app   排序   item   success   檔案   bin   fail   readlines   

#!/usr/bin/env python

import os
import commands
import time
import sys

def SqlOrder(SqlDir):
    sqlfile={}
    for i in os.popen(‘ls %s‘%SqlDir).readlines():
          sqlfile[i] = i.split(‘-‘)[1]
    sqlfile1=[]
    for i in sorted(sqlfile.items(),key=lambda d:d[1]):
         sqlfile1.append(i[0])
    return sqlfile1

def MysqlDump(databasename):
    datetime=time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime())
    cmd=‘mysqldump -uroot -predhat %s >/test/%s_%s.sql‘%(databasename,databasename,datetime)
    print cmd
    k,v=commands.getstatusoutput(cmd)
    #k,v=commands.getstatusoutput(‘mysqldump -uroot -predhat %s >/test/%s_%s.sql‘%(databasename,datetime))
    if k == 0 :
         return ‘MsyqlBackupSucess‘
    else:
         return ‘MysqlBackupFailed‘

def ImportSql(databasename,SqlDir):
     test=SqlOrder(SqlDir)
     done=MysqlDump(databasename)
     if done ==‘MysqlBackupFailed‘:
          return ‘mysqlbakcupfailed‘
     for i in test:
          #os.popen(‘mysql -uroot -predhat %s < /test/sql/%s‘%(databasename,i))
          cmd=‘mysql -uroot -predhat %s < /test/sql/%s‘%(databasename,i.strip())
          print cmd
          k,v=commands.getstatusoutput(cmd)
          #k,v=commands.getstatusoutput(‘mysql -uroot -predhat %s < /test/sql/%s‘%(databasename,i))
          if k == 0:
                print ‘%s import sql success‘%i
          else:
                print ‘%s import sql failed‘%i
                return ‘importsqlfailed‘

if __name__ == "__main__":
        DatabaseName=sys.argv[1]
        SqlDir=sys.argv[2]
        ImportSql(DatabaseName,SqlDir)

 

 ---------------------------------------------------------------------------------------------------------------

注意檔案名稱格式和依賴的mysql命令就好,檔案名稱格式:filesname-times.sql 

這是一個根據多個SQL檔案命名規範寫了一個SQL大量匯入的一個小指令碼,

比如多個檔案名稱如下:

a-20161021.sql

abc-20161020.sql

abcd-20161027.sql

b-20161022.sql

c-20161023.sql

d-20161024.sql

上面的指令碼,可以根據後面的日期進行排序並匯入到相應的資料庫中

例子如下:

[[email protected] test]# python sqlUpdate2.py test /test/sql/
mysqldump -uroot -predhat test >/test/test_2010_12_12_14_16_26.sql
mysql -uroot -predhat test < /test/sql/f-20161020.sql
f-20161020.sql
import sql success
mysql -uroot -predhat test < /test/sql/f-20161021.sql
f-20161021.sql
import sql success
mysql -uroot -predhat test < /test/sql/g-20161022.sql
g-20161022.sql
import sql success

 

Mysql大量匯入多個時間的SQL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.