mysql备份和恢复数据库命令,linux下如何备份还原mysql数据库_MySQL
mysql备份和恢复数据库命令,linux下如何备份还原mysql数据库_MySQL详细介绍
本文目录一览: MySQL如何备份与还原
使用MYSQL数据库的朋友,对MySQL进行备份和还原是比较重要的。重要的事简单做,今天介绍我们使用mysqldump和source命令来备份还原,分为Windows下和Linux下的MYSQL备份与还原操作。 一、Win32系统下MySQL的备份还原方法 备份:在运行中输入cmd ,利用cd /Pro 使用MYSQL数据库的朋友,对MySQL进行备份和还原是比较重要的。重要的事简单做,,今天介绍我们使用mysqldump和source命令来备份还原,分为Windows下和Linux下的MYSQL备份与还原操作。一、Win32系统下MySQL的备份还原方法备份:在“运行”中输入“cmd ”,利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”进入bin文件夹,输入“mysqldump -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出MYSQL数据,实现备份操作。还原:进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。二、Linux下MySQL的备份与还原方法:备份:[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。还原:有两种方法可选:第一种方法:[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。第二种方法:[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)[root@localhost mysql]# mysql -u root -p voice
MySQL数据库如何导入导出(备份还原)
本文适用范围:全面阐述MySQL数据库的各种操作,分虚拟主机和服务器两种情况。虚拟主机1、通过PHPMyAdmin的导入导出功能,这个软件一般只支持几兆数据的导出,太大的数据可能会超时。2、通过程序自带的数据库备份还原功能来操作,一些常见的PHP程序如DZ论坛等,后台都有数据库还原和备份的功能,方便我们转移空间数据。3、如果您的数据库在朝暮数据购买,我们的管理面板支持一键备份和还原。点击备份按钮后,您可以到数据库对应的空间上通过FTP方式下载。服务器或VPS首先我们远程到服务器上(Windows或Linux均可),并准备好root密码或具体数据库的用户名密码。一、数据库的导入(还原)1、source命令1)打开开始菜单->程序->MySQL->MySQL Command Line Client,输入MySQL的root密码。2)然后输入use 数据库名;进入对应的数据库,再用source 备份文件具体路径;命令导入备份文件。注意,在这里的命令后面都要加;分号,截图如下:2、mysql命令1)如果是Windows系统,请在命令行模式下进入mysql的bin目录,如D:\Program\mysql41\bin。如果是Linux系统,请直接看下面的步骤。2)执行mysql命令导入数据库,命令格式为:mysql -u用户名 -p密码 数据库名
<备份文件具体路径比如:mysql -uroot -pabc123 mydb
备份文件具体路径比如:mysqldump -uroot -pabc123 mydb>file.sql,其中用户名和密码也可以是具体数据库的,不一定要root的。如果出现when using LOCK TABLES错误,请在database后面加上--skip-lock-tables就不会报错了。截图如下: 您可能感兴趣的文章:MySQL 文本文件的导入导出数据的方法Mysql 导入导出csv 中文乱码问题的解决方法mysql 导入导出数据库、数据表的方法MySQL导入导出.sql文件及常用命令小结Mysql导入导出工具Mysqldump和Source命令用法详解mysql 导入导出数据库以及函数、存储过程的介绍mysqldump命令导入导出数据库方法与实例汇总MYSQL命令行导入导出数据库详解MYSQL导入导出sql文件简析HeidiSQL工具导出导入MySQL数据
备份文件具体路径比如:mysql>
win7系统怎么备份和恢复MySQL数据 win7系统备份和恢复MySQL数据的方法
今天本文教程和大家分享就是win7系统备份和恢复MySQL数据的方法,MySQL是一个小型关系型数据库管理系统,为防止数据丢失,有时候需要备份MySQL数据。或者遇到系统崩溃等问题,那么怎么恢复MySQL数据?接下来本教程和大家介绍win7系统备份和恢复MySQL数据的方法,通过命令的方式,下面来看看具体设置方法吧。具体方法如下:1、win+r打开命令窗口,输入cmd,打开了cmd窗口;2、退出到C盘的根文件夹,如果不退,在下面备份和恢复的两条命令中要分别在mysqldump和mysql后面加上-hlocalhost;3、然后加载进入MySQL安装目录中的bin文件夹路径;4、接下来就可以进行备份和恢复步骤了。这里解释一下这两条命令:1.备份数据命令mysqldump是MySQL安装的时候自带的一个工具,可以用来备份数据库-uroot是输入用户名-pcompanyd_dept此处是输入数据库名数据库中的表名(如果不需要指定某个表可以不加上后面的表名)这个符号表示导出(即为备份)后面加上要导出的路径company.sql是指定的导出文件,如果路径中没有此文件系统会帮忙新建2.导入备份数据文件恢复数据库命令假设数据库此时被毁坏了,需要导入之前备份的数据库文件前面的用法和备份数据命令基本一致,只是前面关键词由mysqldump改成了mysql这个符号表示导入(与导出相反)后面加上要导入的数据库文件路径source‘文件路径’也可以用来导入备份的文件关于win7系统备份和恢复MySQL数据的方法介绍到这里了,其实备份和恢复MySQL数据的步骤比较简单,并没有想象中那么难,有需要的用户可以掌握,以后对大家操作电脑有所帮助。
linux下如何备份还原mysql数据库_MySQL
本文介绍了linux下如何备份与恢复mysql数据库。数据库备份是非常重要的。如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少。一、用命令实现备份MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份。按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm > tm_050519.sql数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:# mysqldump -u root -p tm | gzip > tm_050519.sql.gz系统崩溃,重建系统时,可以这样恢复数据:# mysqldump -u root -p tm #gzip 二、利用crontab,系统每天定时备份mysql数据库利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。1、创建保存备份文件的路径/var/backup/mysqlbak# mkdir -p /var/backup/mysqlbak2、创建/usr/sbin/bakmysql文件#vi /usr/sbin/bakmysql.sh#!/bin/bash# mysql备份脚本cd /var/backup/mysqlbak/dateDIR=`date +"%y-%m-%d"`mkdir -p $dateDIR/datafor i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 -e "show databases" | grep -v "Database" | grep -v "information_schema"`do /usr/local/www/mysql/bin/mysqldump -uroot -plin31415926 $i | gzip > /var/backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gzdone3、修改文件属性,使其可执行# chmod +x /usr/sbin/bakmysql4、修改/etc/crontab# crontab -e在下面添加01 3 * * * root /usr/sbin/bakmysql#表示每天3点钟执行备份这样每天就可以在/var/backup/mysqlbak下看到备份的sql文件 了!
DBA必知的mysql备份与还原的几大方法
博客地址:http://zpf666.blog.51cto.com/有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!一、mysqldump备份结合binlog日志恢复说明:MySQL备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一次二进制日志备份。这样在MySQL故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间。1、binlog介绍1)该日志记录着数据库的所有增、删、改的操作日志,还包括这些操作的执行时间。Binlog功能默认是关闭的,没有开启。查看binlog,用mysqlbinlog -v mysql-bin.000001Binlog的用途:1:主从同步 2:恢复数据库开启binary log功能:通过编辑my.cnf中的log-bin选项可以开启二进制日志;形式如右:log-bin[=DIR/[filename]] ,注释:每次重启mysql服务或运行mysql> flush logs;都会生成一个新的二进制日志文件,这些日志文件的number会不断地递增,除了生成上述的文件外还会生成一个名为filename.index的文件。这个文件中存储所有二进制日志文件的清单又称为二进制文件的索引。2)查看产生的binary log 注:查看binlog内容是为了恢复数据说明:bin-log因为是二进制文件,不能通过文件内容查看命令直接打开查看,mysql提供两种方式查看方式。①在介绍之前,我们先对数据库进行一下增删改的操作,否则log里边数据有点空。②重新开始一个新的日志文件③查看MySQL Server上的二进制日志查看指定的二进制日志中的事件:该命令还包含其他选项以便灵活查看:总结:上述方式可以查看到服务器上存在的二进制日志文件及文件中的事件,但是想查看到文件中具体的内容并应于恢复场景还得借助mysqlbinlog这个工具。语法格式:mysqlbinlog [options] log_file ...输出内容会因日志文件的格式以及mysqlbinlog工具使用的选项不同而略不同。mysqlbinlog的可用选项可参考man手册。说明:无论是本地二进制日志文件还是远程服务器上的二进制日志文件,无论是行模式、语句模式还是混合模式的二进制日志文件,被mysqlbinlog工具解析后都可直接应用与MySQL Server进行基于时间点、位置或数据库的恢复。下面我们就来演示如何使用binlog恢复之前删除数据(id=2那条记录)注意:在实际生产环境中,如果遇到需要恢复数据库的情况,不要让用户能访问到数据库,以避免新的数据插入进来,以及在主从的环境下,关闭主从。①查看binlog文件,从中找出delete from bdqn.test where id=2# cd/usr/local/mysql/data/# mysqlbinlog -v mysql-bin.000002显示结果如下:图片看不清楚的可以看下面复制的日志:# at 219#170316 21:52:28 server id 1 end_log_pos 287 CRC32 0xff83a85bQuery thread_id=2 exec_time=0 error_code=0SET TIMESTAMP=1489672348/*!*/;SET @@session.pseudo_thread_id=2/*!*/;SET @@session.foreign_key_checks=1,@@session.sql_auto_is_null=0, @@session.unique_checks=1,@@session.autocommit=1/*!*/;SET @@session.sql_mode=1075838976/*!*/;SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8 *//*!*/;SET@@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN/*!*/;# at 287#170316 21:52:28 server id 1 end_log_pos 337 CRC32 0x343e7343Table_map: `bdqn`.`test` mapped to number 108# at 337#170316 21:52:28 server id 1 end_log_pos 382 CRC32 0xa3d1ce0dDelete_rows: table id 108 flags: STMT_END_FBINLOG ‘nJjKWBMBAAAAMgAAAFEBAAAAAGwAAAAAAAEABGJkcW4ABHRlc3QAAgMPAjwAAkNzPjQ=nJjKWCABAAAALQAAAH4BAAAAAGwAAAAAAAEAAgAC//wCAAAABGxpc2kNztGj‘/*!*/;### DELETE FROM `bdqn`.`test`### WHERE### @1=2### @2=‘lisi‘# at 382#170316 21:52:28 server id 1 end_log_pos 413 CRC32 0x257e7073Xid = 10COMMIT/*!*/;说明:可以从上图可以看出来delete时间发生position是287,事件结束position是413。②恢复流程:直接用bin-log日志将数据库恢复到删除位置287前,然后跳过故障点,再进行恢复下面所有的操作,命令如下由于之前没有做过全库备份,所以要使用所有binlog日志恢复,所以生产环境中需要很长时间恢复,导出相关binlog文件。③删除bdqn数据库(删除bdqn和恢复数据之前,要关闭binlog功能)④利用binlog恢复数据⑤恢复完成后,我们检查下表的数据是否完整2、mysqldump介绍作用:mysqldump是mysql自带的备份和数据转移的工具。特点:它只产生sql语句(即sql命令)封装在文件,而不是真实的数据。Mysqldump是逻辑备份,不是物理备份,备份的是SQL语句,而不是数据文件。Mysqldump适用于小型数据库,数据容量一般是在几个G大小,当数据量很大的情况下,不建议使用mysqldump。导出对象:可以针对单个表、多个表、单个数据库、多个数据库、所有数据库。格式:#mysqldump [选项] 库名 [表名1] [表名2] ? >/备份路径/备份文件名//导出指定数据库的单个或多个表#mysqldump [选项] --databases 库名1 [库名2] ? > /备份路径/备份文件名//导出指定的数据库或多个数据库#mysqldump [选项] --all-databases > /备份路径/备份文件名//导出所有的数据库#mysqldump -uroot -p123456--flush-logs bdqn >/opt/bdqn.sql//导出数据库bdqn,其中“—flush-logs”这个选项是完整备份完毕后开启一个新的binlog#mysql-uroot -p123456 bdqn< /opt/bdqn.sql//从备份文件导入数据库bdqn下面用一个具体的实验说明用mysqldump实现全库备份+binlog的数据恢复1)开启binlog功能并重启服务2)创建备份目录3)创建实验数据4)开始全库备份(注意:全库备份不会备份binlog日志文件)5)备份mysqldump全库备份之前的所有的binlog日志文件(注意:真是生产环境中可能不止一个binlog文件)6)因为全库备份之前的binlog已经备份了,现在就删除它们(即新产生的binlog之前的所有的binlog删除)7)模拟误操作,删除了数据,并且新增加了新的数据8)备份自mysqldump之后的binlog日志文件9)使用mysqldump的全库备份+binlog来恢复数据①使用mysqldump的备份进行全库恢复(即恢复到全部备份时候的所有数据)②分析新开启的binlog日志文件(我这里是mysql-bin.000002)里面误操作的事件的起始位置和终止位置,只要跳过这一段事件即可图片看不清楚的可以看下面复制的日志:# at 219#170318 21:14:42 server id 1 end_log_pos 291 CRC32 0xddbf8effQuery thread_id=5 exec_time=0 error_code=0SET TIMESTAMP=1489842882/*!*/;SET @@session.pseudo_thread_id=5/*!*/;SET @@session.foreign_key_checks=1,@@session.sql_auto_is_null=0, @@session.unique_checks=1,@@session.autocommit=1/*!*/;SET @@session.sql_mode=1075838976/*!*/;SET @@session.auto_increment_increment=1,@@session.auto_increment_offset=1/*!*/;/*!\C utf8 *//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN/*!*/;# at 291#170318 21:14:42 server id 1 end_log_pos 339 CRC32 0x4a9ec8f2Table_map: `bdqn`.`it` mapped to number 108# at 339#170318 21:14:42 server id 1 end_log_pos 388 CRC32 0x2e8a3da8Delete_rows: table id 108 flags: STMT_END_FBINLOG ‘wjLNWBMBAAAAMAAAAFMBAAAAAGwAAAAAAAEABGJkcW4AAml0AAIDDwI8AALyyJ5KwjLNWCABAAAAMQAAAIQBAAAAAGwAAAAAAAEAAgAC//wBAAAACHpoYW5nc2FuqD2KLg==‘/*!*/;### DELETE FROM `bdqn`.`it`### WHERE### @1=1###@2=‘zhangsan‘# at 388#170318 21:14:42 server id 1 end_log_pos 419 CRC32 0xa1c06a4fXid = 43COMMIT/*!*/;③开始使用全库备份后的增量备份的binlog日志文件备份文件进行对全库恢复后的增量数据的恢复10)查看恢复结果总结:从上图显示可以看出数据恢复到正常状态,实际生产环境中mysql数据库的备份是周期性重复操作,所有通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本。通过crontad计划任务周期性执行备份脚本1)制定mysqldump备份方案周日凌晨1点全库备份;周一到周六凌晨每隔4个小时增量备份一次设置crontab任务,每天执行备份脚本:2)编写mysqlfullbackup.sh脚本(即mysql全库备份脚本)图片看不清楚的可以看下面复制的脚本原文件:#!/bin/bash#Name:mysqlFullBackup.sh#定义数据库目录mysqlDir=/usr/local/mysql#定义用于备份数据库的用户名和密码user=rootuserpwd=123456dbname=bdqn#定义备份目录databackupdir=/opt/mysqlbackup[ ! -d $databackupdir ] && mkdir $databackupdir#定义邮件正文文件emailfile=$databackupdir/email.txt#定义邮件地址email=root@localhost.localdomain#定义备份日志文件logfile=$databackupdir/mysqlbackup.logDATE=`date -I`echo "" > $emailfileecho $(date +"%Y-%m-%d %H:%M:%S") >>$emailfilecd $databackupdir#定义备份文件名dumpfile=mysql_$DATE.sqlgzdumpfile=mysql_$DATE.sql.tar.gz#使用mysqldump备份数据库,请根据具体情况设置参数$mysqlDir/bin/mysqldump -u$user -p$userpwd --flush-logs-x $dbname > $dumpfile#压缩备份文件if [ $? -eq 0 ]; then tar zcvf$gzdumpfile $dumpfile >> $emailfile 2>&1 echo"BackupFileName:$gzdumpfile" >> $emailfile echo"DataBase Backup Success!" >> $emailfile rm -rf$dumpfileelse echo"DataBase Backup Fail!" >> $emailfilefi#写日志文件echo"-------------------------------------------------" >> $logfilecat $emailfile >> $logfile#发送邮件通知cat $emailfile | mail -s "MySQL Backup" $email2)编写mysqldailybackup.sh脚本(即mysql增量备份脚本)图片看不清楚的可以看下面复制的脚本原文件:#!/bin/bash#Name:mysqlDailyBackup.sh#定义数据库目录和数据目录mysqldir=/usr/local/mysqldatadir=$mysqldir/data#定义用于备份数据库的用户名和密码user=rootuserpwd=123456#定义备份目录、每日备份文件备份到$databackupdir/dailydatabackupdir=/opt/mysqlbackupdailybackupdir=$databackupdir/daily#定义邮件正文文件emailfile=$databackupdir/email.txt#定义邮件地址email=root@localhost.localdomain#定义日志文件logfile=$databackupdir/mysqlbackup.logecho "" > $emailfileecho $(date +"%Y-%m-%d %H:%M:%S") >>$emailfile#刷新日志,使数据库使用新的二进制日志文件$mysqldir/bin/mysqladmin -u$user -p$userpwd --flush-logscd $datadir#得到二进制日志列表filelist=`cat mysql-bin.index`icounter=0for file in $filelistdo icounter=`exper$icounter + 1`donenextnum=0ifile=0for file in $filelistdobinlogname=`basename $file` nextnum=`expr$nextnum + 1`#跳过最后一个二进制日志(数据库当前使用的二进制日志文件)if [ $nextnum -eq $icounter ]; then echo "Skiplastest!" > /dev/nullelsedest=$dailybackupdir/$binlogname#跳过已经备份的二进制日志文件if [ -e $dest ]; then echo "Skipexist $binlogname!" > /dev/nullelse#备份日志文件到备份目录cp $binlogname $dailybackupdirif [ $? -eq 0 ]; thenifile=`expr $ifile + 1`echo "$binlogname backup success!" >>$emailfile fi fifidoneif [ $ifile -eq 0 ]; then echo "NoBinlog Backup!" >> $emailfileelse echo"Backup $ifile File(s)." >> $emailfile echo"Backup MySQL Binlog OK!" >> $emailfilefi#发送邮件通知cat $emailfile | mail -s "MySQL Backup" $email#写日志文件echo"-----------------------------------------" >> $logfilecat $emailfile >> $logfile发送邮件测试:安装libmysqlclient.so.18再次测试:二、 使用xtrabackup进行MySQL数据库备份前面介绍mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。这时就需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup。Xtrabackup实现是物理备份,而且是物理热备。目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup;ibbackup是商业软件,需要授权,非常昂贵。而xtrabackup功能比ibbackup还要强大,但却是开源的。因此我们这里就来介绍xtrabackup的使用。Xtrabackup提供了两种命令行工具:xtrabackup:专用于备份InnoDB和XtraDB引擎的数据;innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令即可以实现备份InnoDB,也可以备份MyISAM引擎的对象。Xtrabackup是由percona提供的mysql数据库备份工具,特点:(1)备份过程快速、可靠;(2)备份过程不会打断正在执行的事务;(3)能够基于压缩等功能节约磁盘空间和流量;(4)自动实现备份检验;(5)还原速度快。官方链接地址:http://www.percona.com/software/percona-xtrabackup;可以下载源码编译安装,也可以下载适合的RPM包或使用yum进行安装或者下载二进制源码包。安装xtrabackup1)下载xtrabackupwget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz2)解压3)进入解压目录4)复制bin下的所有程序到/usr/bin说明:Xtrabackup中主要包含两个工具:xtrabackup:是用于热备份innodb,xtradb表中数据的工具,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作Myisam引擎表;innobackupex:是将xtrabackup进行封装的perl脚本,能同时处理Innodb和Myisam,但在处理Myisam时需要加一个读锁。由于操作Myisam时需要加读锁,这会堵塞线上服务的写操作,而Innodb没有这样的限制,所以数据库中Innodb表类型所占的比例越大,则越有利。5)安装相关插件6)下载percona-toolkit并安装#wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.1
mysql数据库太大了如何备份与还原
2.导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名范例:mysqldump -uroot -p abc > abc.sql(导出数据库abc到abc.sql文件)提示输入密码时,输入该数据库用户名的密码(如果导出单张表的话在数据库名后面输入表名即可)如果提示locktable错误:则在mysqldump -uroot -p abc后面空一格加上--skip-lock-tables3、会看到文件news.sql自动生成到bin文件下?MySQL命令行导入数据库:1,将要导入的.sql文件移至bin文件下,这样的路径比较方便2,同上面导出的第1步3,进入MySQL:mysql -u 用户名 -p如我输入的命令行:mysql -u root -p?? (输入同样后会让你输入MySQL的密码)4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库5,输入:mysql>use 目标数据库名如我输入的命令行:mysql>use news;6,导入文件:mysql>source 导入的文件名;如我输入的命令行:mysql>source news.sql;MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。1.Win32下MySQL的备份与还原1.1 备份开始菜单 | 运行 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”命令进入bin文件夹 | 利用“mysqldump? -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。1.2 还原进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。2.Linux下MySQL的备份与还原2.1 备份[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。2.2 还原方法一:[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。方法二:[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)[root@localhost mysql]# mysql -u root -p voice
<voice.sql,输入密码即可。总结
</voice.sql,输入密码即可。总结
详解Mysql自动备份与恢复的几种方法(图文教程)
自动备份MySQL 5.0有三个方案:备份方案一: 通过 mysqldump命令,直接生成一个完整的 .sql 文件Step 1: 创建一个批处理(说明:root 是mysql默认用户名, aaaaaa 是mysql密码, bugtracker 是数据库名)------------mySql_backup.bat--------------------------------------------------------------------------------------d:cd D:/AppServ/MySQL/binmysqldump -uroot -paaaaaa bugtracker > E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sqlexitStep 2: 创建一个计划任务"Start" -- > "Control Panel" --> "Administrative Tools" -- > "Task Scheduler""Create A Basic Task" --> --- > "Daily" (注意设置后面的 时 分 秒) --> ---- "Start a Program" --> "Browser" (定位选择到你刚才创建的批处理mySql_backup.bat) --> --- > "Finish"对应的还原方法创建一个处理:----------mySql_restore.bat-------d:cd D:/AppServ/MySQL/binmysql -uroot -paaaaaa bugtracker < E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sqlexit双击它即可自动执行还原备份方案二: 通过 xcopy 命令,直接把Mysql 的 data 目录下的对应的数据库全部的文件全部 copy 出来创建批处理:xcopy D:/AppServ/MySQL/data/bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker/ /e /h /d /y /r /v /f /k exit对应的还原方法把 E:/DataBase/Mysql_bugtracker_backup 目录下的 bugtracker文件夹 直接 copy 到 D:/AppServ/MySQL/data 目录下,把这个目录的bugtracker文件夹 全部履盖掉备份方案三:安装Navicat For MySql 工具,通过它的 Schedule 功能设置自动备份Schedule -- > New Batch Job在新弹出的页面中 选择你的 DB (eg: bugtracker ),然后在右边面板(Available Jobs)中你会看到“Backup bugtracker”,双击它,它会出现在下边面板---附上几张图片(全部的操作步骤)第一步:第二步第三步第四步第五步第六步第七步对应的还原方法:找到上述目录下对应的最新的 .psc 文件,然后通过Navicat For Mysql 工具还原附上一些操作步骤的图片第一步第二部第三步第四步第五步
如何实现MySQL数据库的备份与恢复
在数据库表丢失或损坏的情况下 备份你的数据库是很重要的 如果发生系统崩溃 你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态 有时 正是MySQL管理员造成破坏 管理员已经知道表以破坏 用诸如vi或Emacs等编辑器试图直接编辑它们 这对表绝对不是件好事! 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp cpio或tar等) 每种方法都有其优缺点 mysqldump与MySQL服务器协同操作 直接拷贝方法在服务器外部进行 并且你必须采取措施保证没有客户正在修改你将拷贝的表 如果你想用文件系统备份来备份数据库 也会发生同样的问题 如果数据库表在文件系统备份过程中被修改 进入备份的表文件主语不一致的状态 而对以后的恢复表将失去意义 文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程 这样你能采取措施确保服务器让表不受干扰 mysqldump比直接拷贝要慢些 mysqldump生成能够移植到其它机器的文本文件 甚至那些有不同硬件结构的机器上 直接拷贝文件不能移植到其它机器上 除非你正在拷贝的表使用MyISAM存储格式 ISAM表只能在相似的硬件结构的机器上拷贝 在MySQL 中引入的MyISAM表存储格式解决了该问题 因为该格式是机器无关的 所以直接拷贝文件可以移植到具有不同硬件结构的机器上 只要满足两个条件 另一台机器必须也运行MySQL 或以后版本 而且文件必须以MyISAM格式表示 而不是ISAM格式 不管你使用哪种备份方法 如果你需要恢复数据库 有几个原则应该遵守 以确保最好的结果 定期实施备份 建立一个计划并严格遵守 让服务器执行更新日志 当你在崩溃后需要恢复数据时 更新日志将帮助你 在你用备份文件恢复数据到备份时的状态后 你可以通过运行更新日志中的查询再次运用备份后面的修改 这将数据库中的表恢复到崩溃发生时的状态 以文件系统备份的术语讲 数据库备份文件代表完全倾倒(full dump) 而更新日志代表渐进倾倒(incremental dump) 使用一种统一的和易理解的备份文件命名机制 象backup buckup 等不是特别有意义 当实施你的恢复时 你将浪费时间找出文件里是什么东西 你可能发觉用数据库名和日期构成备份文件名会很有用 例如 %mysqldump samp_db >/usr/archives/mysql/samp_db %mysqldump menagerie >/usr/archives/mysql/menagerie 你可能想在生成备份后压缩它们 备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘 就象你让你的日志文件过期那样 用文件系统备份备份你的备份文件 如果遇上了一个彻底崩溃 不仅清除了你的数据目录 也清除了包含你的数据库备份的磁盘驱动器 你将真正遇上了麻烦 也要备份你的更新日志 将你的备份文件放在不同于用于你的数据库的文件系统上 这将降低由于生成备份而填满包含数据目录的文件系统的可能性 用于创建备份的技术同样对拷贝数据库到另一台机器有用 最常见地 一个数据库被转移到了运行在另一台主机上的服务器 但是你也可以将数据转移到同一台主机上的另一个服务器 使用mysqldump备份和拷贝数据库 当你使用mysqldumo程序产生数据库备份文件时 缺省地 文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句 换句话说 mysqldump产生的输出可在以后用作mysql的输入来重建数据库 你可以将整个数据库倾倒进一个单独的文本文件中 如下 %mysqldump samp_db >/usr/archives/mysql/samp_db 输出文件的开头看起来象这样 # MySQL Dump # # Host: localhost Database: samp_db # # Server version alpha log # # Table structure for table absence # CREATE TABLE absence( student_id int( ) unsigned DEFAULT NOT NULL date date DEFAULT NOT NULL PRIMARY KEY (student_id date) ); # # Dumping data for table absence # INSERT INTO absence VALUES ( ); INSERT INTO absence VALUES ( ); INSERT INTO absence VALUES ( ); 文件剩下的部分有更多的INSERT和CREATE TABLE语句组成 如果你想压缩备份 使用类似如下的命令 %mysqldump samp_db | gzip >/usr/archives/mysql/samp_db gz 如果你要一个庞大的数据库 输出文件也将很庞大 可能难于管理 如果你愿意 你可以在mysqldump命令行的数据库名后列出单独的表名来倾到它们的内容 这将倾倒文件分成较小 更易于管理的文件 下例显示如何将samp_db数据库的一些表倾到进分开的文件中 %mysqldump samp_db student score event absence >grapbook sql %mysqldump samp_db member president >hist league sql 如果你生成准备用于定期刷新另一个数据库内容的备份文件 你可能想用 add drop table选项 这告诉服务器将DROP TABLE IF EXISTS语句写入备份文件 然后 当你取出备份文件并把它装载进第二个数据库时 如果表已经存在 你不会得到一个错误 如果你倒出一个数据库以便能把数据库转移到另一个服务器 你甚至不必创建备份文件 要保证数据库存在于另一台主机 然后用管道倾倒数据库 这样mysql能直接读取mysqldump的输出 例如 你想从主机拷贝数据库samp_db到 可以这样很容易做到 %mysqladmin h create samp_db %mysqldump samp_db | mysql h samp_db 以后 如果你想再次刷新上的数据库 跳过mysqladmin命令 但要对mysqldump加上 add drop table以避免的得到表已存在的错误 %mysqldump add drop table samp_db | mysql h samp_db mysqldump其它有用的选项包括 flush logs和 lock tables组合将对你的数据库检查点有帮助 lock tables锁定你正在倾倒的所有表 而 flush logs关闭并重新打开更新日志文件 新的更新日志将只包括从备份点起的修改数据库的查询 这将设置你的更新日志检查点位备份时间 (然而如果你有需要执行个更新的客户 锁定所有表对备份期间的客户访问不是件好事 ) 如果你使用 flush logs设置检查点到备份时 有可能最好是倾倒整个数据库 如果你倾倒单独的文件 较难将更新日志检查点与备份文件同步 在恢复期间 你通常按数据库为基础提取更新日志内容 对单个表没有提取更新的选择 所以你必须自己提取它们 缺省地 mysqldump在写入前将一个表的整个内容读进内存 这通常确实不必要 并且实际上如果你有一个大表 几乎是失败的 你可用 quick选项告诉mysqldump只要它检索出一行就写出每一行 为了进一步优化倾倒过程 使用 opt而不是 quick opt选项打开其它选项 加速数据的倾倒和把它们读回 用 opt实施备份可能是最常用的方法 因为备份速度上的优势 然而 要警告你 opt选项确实有代价 opt优化的是你的备份过程 不是其他客户对数据库的访问 opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表 你可在一般数据库访问上很容易看到其效果 当你的数据库一般非常频繁地使用 只是一天一次地调节备份 一个具有 opt的相反效果的选项是 dedayed 该选项使得mysqldump写出INSERT DELAYED语句而不是INSERT语句 如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小 delayed对此很有帮助 press选项在你拷贝数据库到另一台机器上时很有帮助 因为它减少网络传输字节的数量 下面有一个例子 注意到 press对与远端主机上的服务器通信的程序才给出 而不是对与本地主机连接的程序 %mysqldump opt samp_db | mysql press h samp_db mysqldump有很多选项 详见《MySQL参考手册》 使用直接拷贝数据库的备份和拷贝方法 另一种不涉及mysqldump备份数据库和表的方式是直接拷贝数据库表文件 典型地 这用诸如cp tar或cpio实用程序 本文的例子使用cp 当你使用一种直接备份方法时 你必须保证表不在被使用 如果服务器在你则正在拷贝一个表时改变它 拷贝就失去意义 保证你的拷贝完整性的最好方法是关闭服务器 拷贝文件 然后重启服务器 如果你不想关闭服务器 要在执行表检查的同时锁定服务器 如果服务器在运行 相同的制约也适用于拷贝文件 而且你应该使用相同的锁定协议让服务器 安静下来 假设服务器关闭或你已经锁定了你想拷贝的表 下列显示如何将整个samp_db数据库备份到一个备份目录(DATADIR表示服务器的数据目录) %cd DATADIR %cp r samp_db /usr/archive/mysql 单个表可以如下备份 %cd DATADIR/samp_db %cp member * /usr/archive/mysql/samp_db %cp score * /usr/archive/mysql/samp_db 当你完成了备份时 你可 lishixinzhi/Article/program/MySQL/201311/29384