利用了mysql自带的工具,效率高,也不怕文件过大。
先说备份
mysqldump -u数据库用户名 -p密码 dbname > 备份路径/导出名.sql
就是把dbname数据库,导出到 备份路径/导出名.sql
恢复
mysql -u数据库用户名 -p密码 dbname < 备份路径/数据库名.sql
mysql命令说完了,下面该shell了,用shell来实现mysql的自动备份。
建立shell
mysqlback.sh 内容如下:
#!/bin/bash
X=`date +%Y%m%d` ;获取当天时间,命名用
M=/usr/local/mysql/bin ;mysql程序的路径
B= /usr/back/mysql ;mysql备份的路径
$M/mysqldump -uroot -proot test > $B/$X.sql
tar -zcvf $B/$X.tar.gz $B/$X.sql
rm -rf $B/$X.sql
tar 打包压缩后,rm 删除原sql文件
然后添加到计划任务,每天3点05分自动执行:
#echo "05 3 * * * root /usr/back/shell/mysqlback.sh &>/dev/null" >> /etc/crontab
------------------------
如果恢复数据的话,可以用source命令。
mysql> CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
mysql> use my_db;
mysql>source backupfilename;
mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;
--------------------
mysql>select * from co_userdata into outfile "/home/huangjiaqiao/co_userdata.txt"
mysql>load data local infile “C://co_userdata.txt” into table co_userdata;
mysql>load data local infile "/home/huangjiaqiao/co_userdata.txt" into table co_userdata;
mysql>load data local infile 'e:/keywordsFilter.txt'into table t_sens(name);
--------------
导出csv
/usr/local/mysql/bin/mysqldump -t -T /tmp --fields-terminated-by=, -h192.168.1.x -uadmin -p'xxx' hash_ziper t_rank_song
load data infile '/data/www/kugoupic-utf8.txt' into table kguser fields terminated by ',';