# python 中导入导出数据库到.sql文件

  导出数据库数据的命令行

    # mysqldump 命令
    sqlfromat = "%s -h%s -u%s -p%s -P%s %s >%s"
    # 生成相应的sql语句
    sql = (sqlfromat % ('mysqldump ',
                        config.host,        # 127.0.0.1
                        config.admin,       # 用户名
                        config.password,    # 密码
                        config.port,        # 端口
                        config.db,          # 数据库
                        filename))          # 文件名 ***.sql
    os.system(sql)

  这个是将结构和数据都导出来了,后面记录下几个其他方式的导出:

1、导出数据和表结构——将特定数据库特定表中的数据和表格结构和数据全部返回

mysqldump -uadmin -h127.0.0.1 -p'pwd' -P3306 test > test.sql

2、导出表结构却不导出表数据——只返回特定数据库特定表格的表格结构,不返回数据,添加“-d”命令参数

mysqldump -uadmin -h127.0.0.1 -p'pwd' -P3306 -d test > test.sql

3、导出表结构和满足挑顶条件的表数据——只返回特定数据库中特定表的表格结构和满足特定条件的数据

mysqldump -uadmin -h127.0.0.1 -p'pwd' -P3306 test --where=" ctime>'2017-01-01' and ctime<'2017-06-30'" > test.sql

4、导出数据却不导出表结构——只返回特定数据库中特定表格的数据,不返回表格结构,添加“-t”命令参数

mysqldump -uadmin -h127.0.0.1 -p'pwd' -P3306 -t test > test.sql

5、导出特定数据库的所有表格的表结构及其数据,添加“--databases ”命令参数

mysqldump -uadmin -h127.0.0.1 -p'pwd' -P3306 --databases test > test.sql

  导入数据库命令行

	file = os.path.join(sql_dir, 'test.sql')

	sqlfromat = "%s -h%s -u%s -p%s -P%s %s <%s"
	sql = (sqlfromat % ('mysql ',
			config.host,
			config.admin,
			config.password,
			config.port,
			config.db,
			file))
	
	os.system(sql)