网站首页 文章专栏 mysql 备份

mysql 备份

编辑时间:2018-07-06 17:23:11 作者:苹果 浏览量:443




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 文件即可恢复数据

    把脚本用定时器定时就跑就可以了。

 


    出自:何冰华个人网站

    地址:http://www.hebinghua.com/

    转载请注明出处


来说两句吧
最新评论