Mysql批量导入多个时间的SQL

#!/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

时间: 2024-10-13 00:51:56

Mysql批量导入多个时间的SQL的相关文章

mysql 批量导入 Packets larger than max_allowed_packet are not allowed

解决方法  :http://blog.csdn.net/gtosky4u/article/details/8581281 mysql 批量导入 Packets larger than max_allowed_packet are not allowed,布布扣,bubuko.com

MySQL批量导入Excel数据

MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名称一致,方便需要导入多张表数据时一一对应)) 2.在Excel表中,正确填写需要导入的数据,一行数据对应着数据库表中的一行记录:(注:各个字段的格式要求需要和数据库中的限制一样,避免出现差错) 3.收集好需要导入的数据后,点击保存.(注:导入的时候,Excel文件处于打开状态) 4.选中需要导入数据

。。。MySQL批量导入sql文件。。。

今天在导入一个新的数据库的时候,里面有40张左右的表.上网搜了很多资料终于学会了,但是网络上有很多资料的正确性有待通过实践操作去验证其真伪性! 下面就是干货: (1)在桌面上新建一个文件--main.sql(可以新建一个txt文件,然后将文件后缀名改为sql). (2)打开main.sql(通过Notepad++打开,没有的话可以去网络上下载一个,当然只要能够打开这个文件,并且可以编辑它,用什么软件都无所谓,我这里用的是Notepad++) (3)打开main.sql文件之后呢,在里面写如下内容

mysql 批量导入数据

在我们使用数据库的过程中,避免不了备份.恢复.导入.导出数据,方法比较多,根据不同的数据量选择不同的方法,会提高我们的工作效率, (1)从表A导入数据到表B:一般涉及到表结构相同或者表结构不同等情况,数据量少的时候效率很高, 测试表A为 send_done,创建语句为下面内容, CREATE TABLE `send_done` (   `id` bigint(20) NOT NULL AUTO_INCREMENT,   `phone` varchar(20) NOT NULL,   `conte

MySQL 批量导入 csv 文件

注意编码一致性,如:我的数据库是utf-8编码,csv文档的编码也是utf-8. 导入使用 LOAD DATA LOCAL INFILE 详细用法请参看文档或者书籍. mysql  user表结构: +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+--

mysql 导出导入数据 -csv

MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into outfile 'e://output1.csv' fields terminated by ','optionally enclosed by ''lines terminated by '/n'; csv文件效果: sunny Grigoryan [email protected]           Jon Siegal [email 

Java实现Mysql数据导入导出

package com.backup; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter; public class T

mysql 如何提高批量导入的速度

mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢.在网上搜索了一下,有下面一些方法可以加快mysql数据库导入数据的速度:0. 最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似):1. 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度:2. 使

分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ] [ [ , ] CHECK_CONSTRAINTS ] [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_pag