一、MySQL导出数据

1、在MySQL中,可以使用SELECT…INTO OUTFILE语句将查询结果数据导出到文本文件

# 查看默认路径
	show variables like '%secure_file_priv%';

mysql导出数据命令 mysql 导出数据_mysql

secure_file_priv取值说明:

  • null–表示不允许导入导出
  • 空–表示没有任何限制
  • 指定路径–表示导入导出只能在指定路径下完成
SELECT * FROM user_range INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\user_range.txt'
		FIELDS TERMINATED BY ',' 
		ENCLOSED BY '"'
		LINES TERMINATED BY '\r\n';

2、mysql命令重定向查询结果

  通常,我们使用mysql命令连接数据库,mysql命令有一个-e选项,可以执行指定的SQL语句,再结合DOS的重定向操作符”>”可以将查询结果导出到文件。

mysql -h localhost -u root -p -D mydb -e "select * from user_range" > E:\user_range.txt

3、使用mysqldump导出数据

# 导出dbname 数据库(含数据)
	mysqldump -h localhost -u root -p dbname > d:/dbname.sql
	# 导出dbname 数据库(不含数据)
	mysqldump -h localhost -u root -p dbname --no-data > d:/dbname.sql
	# 导出dbname.user_range 数据表
	mysqldump -h localhost -u root -p dbname user_range > d:/user_range.sql
	# 导出dbname数据库,忽略contacts表
	mysqldump -h localhost -u root -p dbname --ignore-table dbname.contacts > d:/user_range.sql

二、MySQL备份数据

1、Windows

  schtasks.exe用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任务、按需要启动和停止任务、显示和更改计划任务。

#备份数据库的脚本mysql_mydb_backup.bat
	mysqldump -h localhost -uroot -p123456 mydb > d:\backup\mydb.sql
	#创建计划任务(每隔指定时间备份一次MySQL)
	schtasks /create /sc minute /mo 1 /tn 定期备份MySQL /tr d:\backup\mysql_mydb_backup.bat
	#删除计划任务
	schtasks /delete /tn 定期备份MySQL

2、Linux

#!/bin/bash
	   #备份目录
	   backup_dir=/home/liufeng/backup
	   #备份文件名
	   backup_filename=“mydb-`date +%Y%m%d`.sql“
	   #进入备份目录
	   cd $backup_dir
	   #备份数据库
	   mysqldump -h localhost -uroot -p123456 mydb > ${backup_dir}/${backup_filename} #删除7天以前的备份
	   find ${backup_dir} -mtime +7 -name "*.sql" -exec rm -rf {} \;

b、crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于周期性执行任务。

#每天凌晨01:30执行shell脚本(备份数据库)
	30 1 * * * bash /home/liufeng/backup/mysql_mydb_backup.sh

三、MySQL导入数据

1、load data

  在MySQL中,可以使用LOAD DATA语句将文本文件数据导入到对应的数据库表中,可以将LOAD DATA语句看成是SELECT…INTO OUTFILE的反操作。

#示例
	LOAD DATA INFILE 'D:\\employee.txt' INTO TABLE employee character set utf8
	FIELDS TERMINATED BY ',' 
	ENCLOSED BY '"'
	LINES TERMINATED BY '\r\n';

2、source

  在MySQL中,可以使用source命令导入较大的SQL文件。source命令可以导入使用mysqldump备 份的sql文件。

# source命令的使用示例
	source d:/mydb.sql