linux mysql数据库定时自动备份
1.创建备份目录:
# mkdir -p /mysqldata/backup
2.创建备份shell脚本
# 不需要压缩的 #!/bin/bash mysqldump -uroot -p12345 hello >/mysqldata/backup/hello_$(date +%Y%m%d_%H:%M:%S).sql #说明:-u后面是用户名,-p后面为密码,hello为数据库名称; #需要压缩的 #!/bin/bash mysqldump -uroot -p12345 hello |gzip >/mysqldata/backup/hello_$(date +%Y%m%d_%H:%M:%S).sql.gz
3.添加可执行权限:
# chmod +x mysqlbak.sh
4.添加计划任务
# crontal -e 0 2 * * * /mysqldata/mysqlbak.sh # 每天凌晨2点执行备份任务;
4.查看执行日志;
# tail -f /var/log/cron
MySQL数据库常用备份与还原命令:
格式:mysqldump -h主机名(可以省略) -u用户名 -p密码 --database 数据库名 > 文件名.sql
1、备份命令 # mysqldump -h127.0.0.1 -uroot -ppassword --database hello > /mysqldata/hello.sql 2、备份压缩 # mysqldump -h127.0.0.1 -uroot -ppassword --database hello | gzip > /mysqldata/hello.sql.gz 3、同时备份多个库 # mysqldump -h127.0.0.1 -uroot -ppassword --databases hello hello1 hello2 | gzip > /mysqldata/mutil_db.sql 4、备份所有的数据库 # mysqldump -h127.0.0.1 -uroot -ppassword --all-databases > /mysqldata/all.sql 5、备份数据出带删除数据库或者表的sql备份 # mysqldump -h127.0.0.1 -uroot -ppassword --add-drop-table --add-drop-database hello > /mysqldata/hello.sql 6、备份数据库结构,不备份数据 # mysqldump --no-data –databases hello hello1 hello2 > /mysqldata/structure.sql 7、将数据库转移到新服务器;此例为将本地数据库hello复制到远程数据库名为serweb中,其中远程数据库必须有名为serweb的数据库; # mysqldump -h127.0.0.1 -uroot -ppassword hello | mysql --host=***.***.***.*** -u数据库用户名 -p数据库密码 -C serweb
8、还原数据库
# mysql -uroot -ppassword hello < /mysqldata/hello.sql
9、还原压缩的MySQL数据库
# gunzip < /mysqldata/hello.sql.gz | mysql -uroot -ppassword hello