您当前的位置: 首页 > 网络技术  > 服务器教程 浏览
Linux下mysql数据库备份方法
发布时间:2015-12-11    点击率:次    来源:www.sytcke.com    作者:电脑技术学习网

   通过mysql提供的功能

  导出

  命令:

  mysqldump -u 用户名 -p 数据库 > 数据库.sql

  示例:

 代码如下 复制代码

mysqldump -u root -p db1 > db1.sql(将数据库db1备份到db1.sql中)

  提示输入密码,完成即可。

  导入

  需要先创建一个空数据库

  mysql -u root -p(输入密码后进入mysql)

  create database db1;(创建一个名为db1的数据库)

  exit(退出mysql)

  命令:

  mysql -u 用户名 -p 数据库 < 数据库.sql

  示例:

 代码如下 复制代码

mysql -u root -p db1 < db1.sql(从备份文件db1.sql中导入数据到数据库db1中)

  提示输入密码,完成即可。

  通过拷贝文件

  如果数据库特别大,可以使用拷贝的方式进行备份,不过不同的操作系统间可能会导致不兼容。

  导出

  进入mysql目录,打包需要备份的数据库目录

  示例:

 代码如下 复制代码

cd /var/lib/mysql(进入mysql目录) tar -zcvf db1.tar.gz db1(打包db1目录,如果提示没有权限,在前面加上sudo,提示输入密码后即可)

  导入

  首先创建一个空数据库,将打包的文件拷贝到mysql目录后解压

  示例:

 代码如下 复制代码

mysql -u root -p(输入密码后进入mysql) create database db1;(创建一个名为db1的数据库) exit(退出mysql) cp db1.tar.gz /var/lib/mysql(将打包文件拷贝到mysql目录下) cd /var/lib/mysql(进入mysql目录) tar -zxvf db1.tar.gz(解压到当前目录)

  后现在linux中脚本

 代码如下 复制代码

#!/bin/bash #Mysql autobackup shell#write by tuspark.cn #-------------------数据库相关的用户名、密码、需要备份的数据库名、备份目录等 dbuser=root dbpasswd=XXXXX dbserver=localhost dbname=XXXXX dbopt=--opt backupdir=/dcbackup/ #-------------------是否开启FTP远程备份,0为否,1为是。 copytoftp=1 ftpserver=XXXXX ftpuser=XXXXX ftppasswd=XXXXX #-------------------以下参数 fileprefix=dcradiusdump filename=$backupdir`date +%F`.sql newfile=$fileprefix-`date +%F`.tar.gz keepdays=10 #-------------------以下为备份时的日志 logfile=/var/log/mysqlbackup.log logtmp=/var/log/mybackup.tmp #=============================================== if [ ! -d $backupdir ] then echo "$backupdir is not exist, then make ..." >> $logfile mkdir -p $backupdir fi echo "start====================================>">>$logfile echo "Beginning backup `date +%F %T`" >>$logfile echo "Delete $keepdays days ago files ..." >>$logfile find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} ; echo "Deleted Backup file is :">>$logfile cat $logtmp >>$logfile echo "Delete old file Success!" >>$logfile if [ -f $backupdir$newfile ] then echo "$newfile backup exist, backup stop ..." >>$logfile else if [ -z $dbpasswd ] then mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename else mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename fi tar czvf $backupdir$newfile $dumpfilename >>$logfile 2>&1 echo "$backupdir$newfile Backup Success!" >>$logfile rm -fr $dumpfilename if [ $copytoftp = 1 ]; then if [ -z $ftpserver ];then echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile exit 1 elif [ -z $ftpuser ];then echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile exit 2 elif [ -z $ftppasswd ]; then echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile exit 3 else echo "Start copy to Ftp server ...." >> $logfile ftp -n>$logfile fi

来源 电脑技术网 www.sytcke.com
发表留言
发表留言请先登录!
免责声明:本站发布的信息和评论纯属网民个人行为,并不代表本站立场,如发现有违法信息或侵权行为,请直接与本站管理员联系,我们将在收到您的信息后24小时内作出处理!