如何利用mysqldump备份MySQL数据库 备份或导出数据库命令mysqldump怎么使用
如何利用mysqldump备份MySQL数据库
一、数据备份的重要性
工作中,如果意外删除了重要的文件或者目录的话,那结果可就惨了。尤其是当误删除的数据涉及重要的客户或者关键项目,并且这些数据无法轻易重新创建的时候,那滋味,不用我说你也能想象得到。不巧的是,像这样的数据在公司环境中随处可见,例如销售记录、客户联系方式,等等。
二、关于mysqldump
MySQL自身提供了许多命令行工具,例如mysql工具可以用来与MySQL的数据库模式、数据、用户和配置变量进行交互,而mysqladmin工具则可以进行各种管理任务,还有就是下面将要介绍的mysqldump。此外还有很多,不过那超出了本文的讨论范围。工具mysqldump既可以用来备份数据库模式,还可以用来备份数据利用它,我们不仅可以对一个服务器上的所有数据库进行地毯式的备份,同时我们还可以选择性地备份某个数据库,甚至数据库中指定的某些表。
当在服务器上安装MySQL的时候,应修改系统路径以便使全局命令行可以访问各个客户程序。打开终端窗口,并执行下列命令: %>mysqldump Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS]
databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] all-databases [OPTIONS]
For more options, use mysqldump help
这里给出了使用mysqldump程序的方法。举例来说,若要备份所有数据库模式和数据至文件backup092210.sql的话,可以执行如下所示的命令: %>mysqldump -u root -p all-databases > backup092210.sql Enter password:
这里,为了能够访问所有数据库,我们需要一个root权限,所以这里需要在提示符后面输入相应口令。此外,如果你是在开发用的服务器上练习这些命令的话,不妨花一些时间看看备份文件的内容。这时您会看到一系列的SQL语句,先是删除各个表后重新创建的语句,然后是重新创建相关数据的语句。另外,由于上面的例子中我们对所有数据库进行备份,所以您还会发现,备份文件将创建每个数据库(如果它还没有存在的话),然后通过USE命令切换到该数据库,进而创建与该数据库相关的表跟数据。
若要备份单个数据库,例如要备份名为wiki的数据库到一个名为wiki-backup092210.sql的文件中,我们可以使用如下所示的命令: %>mysqldump -u root -p wiki > wiki-backup092210.sql Enter password:
最后,若要备份数据库中名为users的表的话,例如要把它备份到名为wikiusers-backup092210.sql的文件中,我们可以使用如下所示的命令: %>mysqldump -u root -p wiki users > wikiusers-backup092210.sql Enter password:
三、调整备份内容
有时候,我们可能只想备份数据库的模式,或者只想备份数据库的数据。为了备份数据库模式,可以向mysqldump传递参数no-data,如下所示: %>mysqldump -u root -p no-data wiki > wiki-backup092210.sql
为了只备份数据库的数据,可以向mysqldump使用参数no-create-info,如下所示: %>mysqldump -u root -p no-create-info wiki > wiki-backup092210.sql
对于前面所举的例子,仅需要少量的击键次数就能执行mysqldump命令。然而,工作中要干的活还有很多,并且如果老是执行这些命令的话,那么生活就会变得太单调了。因此,我们可以设法使这些过程自动化,这时我们可以借助cron工具来达成我们的目标,这个工具在所有类UNIX操作系统上都能找到。为了自动执行备份任务,我们需要新建一个正确命名的文件。例如nightly-backup.sh,具体命令如下所示: #!/bin/sh mysqldump -uroot -psecret wiki > /home/backup/sql/wiki-backup-`date %m%d%Y`.sql
接下来,我们将这个脚本提供交给cron,方法是使用crontab。为此,我们可以执行如下所示的命令: %>crontab -e
这将打开当前登录用户的crontab文件,如果该文件不存在的话就会自动新建一个。在这个文件中,我们可以添加如下内容,来确保每天上午3时运行该备份脚本: 0 3 * * * /home/backup/scripts/nightly-backup.sh
如果您对crontab的语法很陌生的话,这里的参数可能让您摸不着头脑。这里前五个参数分别对应于执行脚本的时间,依次为分、时、日、月和星期几。因此,要想在每星期二的4:45am执行脚本的话,可以使用参数45 4 * * 3。
插入上面所示的一行内容后,保存文件,那么我们的任务就会开始按照给定时间调度执行。 需要注意的是,第二天早上一定要查看相应的目录,看看事情是否一切正常。
五、其它备份方案
就像本文前面所说的那样,mysqldump只是MySQL众多备份方案中的一个。此外,您还可以使用MySQL的二进制日志文件进行增量备份,或者使用从MySQL主服务器中将数据复制到从服务器中。
六、小结 本文中,我们与读者一道建立了一个简单的MySQL备份解决方案。如果您之前还未实施任何解决方案的话,不妨立即动手试一下。重要的是,这只需要花费您几分钟的时间,我想这是很划得来的。
备份或导出数据库命令mysqldump怎么使用
、各种用法说明
A. 最简单的用法:
mysqldump -uroot -pPassword [database name]
> [dump file]
上述命令将指定数据库备份到某dump文件(转储文件)中,比如:
mysqldump -uroot -p123 test > test.dump
生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。
B. --opt
如果加上--opt参数则生成的dump文件中稍有不同:
. 建表语句包含drop table if exists tableName
. insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables
C. 跨主机备份
使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:
mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb
-C指示主机间的数据传输使用数据压缩
D. 只备份表结构
mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
将只备份表结构。--databases指示主机上要备份的数据库。如果要备份某个MySQL主机上的所有数据库可以使用--all-databases选项,如下:
mysqldump --all-databases
> test.dump
E. 从备份文件恢复数据库
mysql [database name] < [backup file name]
2、结合Linux的cron命令实现定时备份
比如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump文件为gz格式,那么可在/etc/crontab配置文件中加入下面代码行:
30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date %m-%d-%Y`.sql.gz
前面5个参数分别表示分钟、小时、日、月、年,星号表示任意。date %m-%d-%Y得到当前日期的MM-DD-YYYY格式。
3、一个完整的Shell脚本备份MySQL数据库示例
#vi /backup/backup.sh
#!bin/bash
cd /backup
echo "You are in backup dir"
mv backup* /oldbackup
echo "Old dbs are moved to oldbackup folder"
File = backup-$Now.sql
mysqldump -u user -p password database-name > $File
echo "Your database backup successfully completed"
mysqldump的用法
你好,mysqldump的用法为: 有很多mysql的小工具 楼主应该是在本地实现了 某个环境 尝试下localhost/phpmyadmin 输入你安装的用户名和密码 在里面 都是可是化的 找到你那个表 上面有个导出按钮就可以备份了 备份的文件是.sql文件 mysql dump 是命令条 不熟悉的人不建议这样使用 mysqldump常用于MySQL数据库逻辑备份。 1、各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump... 常用备份工具是mysql自带的mysqldump, 参考一下这个吧 还原或者导入数据库命令:mysql -u root --password=root备份数据库命令:mysqldump -u root --password=root --database 具体原理是先使用mysql读出所有的table,然后用grep过滤,然后传给mysqldump。你可能需要用到这么几个命令mysql,grep,xargs,mysqldump。具体的自己看下manual,就不详细介绍了。
mysqldump -u用户名 -p密码 -->darabases 库名 >d:test.sql
注意-->不可省略。
恢复数据库的用法为:
mysql -u用户名 -p密码 mysql数据库该如何备份呀
mysqldump会备份事务日志么
mysql 怎么备份?
mysqldump -u root -p密码 dbname >d: est.sql ------------备份某个库
mysqldump -u root -p密码 dbname tablename>d: est.sql ------------备份某个库下的某个表
mysqldump -u root -p密码 --all-databases >d: est.sql ------------备份全库
更多参数可通过 在 mysqldump --help查看mysql备份命令是什么?
helloworld >helloworld_backup.sql
其他用法:1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -pmysql>use 数据库然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:wcnc_db.sql 备份:
1. mysqldump -h 61.139.112.56 -u root -p test >d:/test_db.2005-03-02.sql
2. mysqldump -h 61.139.112.56 -u root -p test table1 table2 >d:/test12.sql
3. mysqldump -h 61.139.112.56 -u root -p test |gzip>d:/testz.gz恢复
1. mysql testdb mysqldump命令怎样备份多个具有相同前缀的表