网站首页 文章专栏 mysql 备份
mysql提供了一个mysqldump的工具可以方便的导出导入数据库信息;
执行which mysql找到mysql所在地,一般在/usr/bin/
备份命令:
/usr/bin/mysqldump --opt -uuser -ppwd -hhost name --skip-lock-tables > /data/mysqlback/db_`date +%F`.sql
--opt是quick,add-drop-table,add-locks,extended-insert,lock-tables几个参数的合称
--add-drop-table :在每个创建数据表语句前添加删除数据库的语句
--add-locks:备份数据库表时锁定数据库表
--all-databases:备份mysql服务器上的所有数据库
--comments:添加注释信息
--compact:压缩模式,产生更少的输出
--complete-insert:输出完成的插入语句
--databases:指定要备份的数据库
--default-character-set:指定默认字符集
--force:当出现错误时仍然继续备份操作
--host:指定要备份数据库的服务器
--lock-tables:备份前,锁定所有数据库表
--no-create-db:禁止生成创建数据库语句
--no-create-info:禁止生成创建数据库语句
--pasword:连接mysql服务器的密码
--port:mysql服务器的端口号
--user:连接mysql服务器的用户
这样做有个弊端是,在备份表时,会把表锁死,所以建议加上skip-lock-tables命令
即: /usr/bin/mysqldump --opt -user -pwd -host -name --skip-lock-tables > /data/mysqlBackup/db_`date +%F`.sql
写成脚本为:
#!/bin/sh
# Database info
DB_USER="**"
DB_PASS="**"
DB_HOST="**"
DB_NAME="**j"
DB_TABLE="** ** **" #要备份的表
# Others vars
BIN_DIR="/usr/bin" #the mysql bin path
BCK_DIR="/data" #the backup file directory
DATE=`date +%F`
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME $DB_TABLE --skip-lock-tables | gzip > $BCK_DIR/db_$DATE.sql.zip
# 还原数据库
# 把 *.sql.zip 使用gunzip 或 本地的解压软件 解压为 *.sql 文件
# 用mysql-front导入前一天的 *.sql 文件即可恢复数据
把脚本用定时器定时就跑就可以了。
转载请注明出处