以下的文章主要介绍的是Mysql数据库备份的常识,我们在对MySQL数据库进行操作时难免因为操作的失误而造成某些数据的丢失,不用急,MySQL数据库备份就可以帮你避免由于各种原因造成的数据丢失或着数据库的其他问题。
一、数据备份捷径
因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧。
目的:备份hostA主机中一个MySQL数据库备份TestA,并恢复到到hostB机中
试验环境:
操作系统:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安装MySQL数据库备份并建立TestA数据库
hostB机安装MySQL数据库备份,没有TestA数据库
方法步骤:
启动phpMyAdmin察看HostA和HostB中的数据库列表,在HostB中没有TestA数据库
找到HostA中MySQL数据库备份的安装目录,并找到数据库目录data
在我的试验环境中,这个目录是C:\mysql\data
找到对应数据库名称的子目录C:\mysql\data\TestA
粘贴拷贝到HostB的Data目录下,是HostA同HostB MySQL数据库备份数据目录下的文件相同
刷新HostB的phpMyAdmin察看一下数据库列表,我们看到TestA已经出现,并且作查询修改等操作都正常,备份恢复恢复成功

试验结论:MySQL的数据库可以通过文件形式保存,备份,恢复只要将相应文件目录恢复即可,无需使用其它工具备份。
二、正规的方法(官方建议):
导出要用到MySQL数据库备份的mysqldump工具,基本用法是:
mysqldump [OPTIONS]>服务器均支持压缩,压缩两者间所有的信息。
用INSERT DELAYED命令插入行。
-e, extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, debug[=option_string]
跟踪程序的使用(为了调试)。
显示一条帮助消息并且退出。
这些选择与-T选择一起使用,并且有相应的LOAD>
mysql备份数据库 怎么锁表
mysqldump是mysql用于转存储数据库的实用程序。 它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。 如果给mysqldump进行备份,从库上停止复制的sql线程 然后mysqldump,这个是个很好的选择,因为停止复制就没有写,就不用担心锁表的问题 。 下面提供两只备份方法:一、MyISAM引擎备份1. 由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致, 2. 所以,在备份时使用--lock-all-tables加上读锁mysqldump -A -F -B --lock-all-tables |gZIP >/data/backup/$(Date +%F) 3.特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面已经详细讲解过了,这里就不在讲了。 二、 InnoDB引擎备份1. InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:mysqldump -A -F -B --single-transaction |gzip >/data/backup/$(date +%F)2. 特别注意:--single-transaction仅适用于InnoDB引擎。 --master-data=2会将当前mysql用到的binlog文件的日志名称和位置记录下来 然后搜索change master就行了mysqldump -uroot -ppasswd -B ctp1 --lock-all-tables|gzip >/home/mysql/ctp1.$(date +%F)--no--data 仅仅dump数据库结构创建脚本通过--no-create-info 去掉dump文件中创建表结构的命令。
在备份mysql数据库时,我直接把data文件夹下的数据拷贝走行吗?
可以的,整个data文件夹就是放数据库的地方
MySQL如何备份和还原数据库?
用cmd命令找到mysql目录下的bin文件夹导出:mysqldump -u用户名 -p密码 数据库名>目标文件(如:c:\)导入:mysql -u用户名 -p密码 数据库名(该数据库要事先建好)
发表评论