使用mysqldump工具备份还原Mysql数据库实例及参数详细说明
我们在【wǒ men zài】🤚网站数据维护【jù wéi hù】中经常【zhōng jīng cháng】会遇到备份数⛪据库,还原数🐗据库的💔情况,我们一【wǒ men yī】🥊般用一【bān yòng yī】下两种方式来处理:
1.使用【shǐ yòng】😚into outfile 和 load data infile导入导⛵出备份数据【shù jù】
这种方法的好🛵处是,导出的数据可以自己规定格式【shì】,并且导⛪出的是纯数据【chún shù jù】🤦,不存在【bú cún zài】建表信息【xī】,你可以直接导🐀入另外【rù lìng wài】一个同【yī gè tóng】🔭数据库【shù jù kù】的不同🥀表中🧒,相对于mysqldump比较灵【bǐ jiào líng】🐂活机动。
我们来看下面的例子:
(1)下面的【de】🎈mysql命令是【mìng lìng shì】把select的【de】mytable表中的【biǎo zhōng de】🚦数据导🙈出到/home/db_bak2012文件。
select * from mytable where status!=0 and name!='' into outfile '/home/db_bak2012' fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;
导入刚⛄才备份的数据,可以使【kě yǐ shǐ】用🚳load file方法【fāng fǎ】,下面的mysql命令,把导出🤤的数据导入了【dǎo rù le】😡mytable_bak的表中【de biǎo zhōng】:
load data infile '/home/db_bak2012' into table mytable_bak fields terminated by '|' enclosed by '"' lines terminated by '\r\n' ;
2.使用【shǐ yòng】🔎mysqldump导出固定条件【dìng tiáo jiàn】的数据📼库
我们来看几个📘常用用📒例【lì】:
(1)导出整【dǎo chū zhěng】个数据【gè shù jù】😺库
mysqldump -u 用户名【yòng hù míng】🕊 -p 数据库名 > 导出的🍳文件名【wén jiàn míng】 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
(2)导出一【dǎo chū yī】个表🌴
mysqldump -u 用户名【yòng hù míng】😜 -p 数据库😐名 表名> 导出的文件名【wén jiàn míng】 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
(3)导出一个数据💨库结构【kù jié gòu】
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql #-d 不导出🏾数据只导出结构😼 --add-drop-table 在每个🍑create语句之前增加🐱一个drop table
(4)导入数【dǎo rù shù】据库【jù kù】,常用【cháng yòng】source 命令【mìng lìng】
#进入🤠mysql数据库【shù jù kù】控制台, mysql -u root -p mysql>use 数据库【shù jù kù】 mysql>set names utf8; (先确认编码🕐,如果不【rú guǒ bú】设置可能会出⛴现乱码【xiàn luàn mǎ】,注意不是【shì】UTF-8) #然后使用🤾source命令【mìng lìng】,后面参🐄数为脚本文件【běn wén jiàn】(如这里【rú zhè lǐ】🏨用🤾到的.sql) mysql>source d:\wcnc_db.sql
上【shàng】边的实例只是最基【shì zuì jī】🏉础的,有的时🧀候我们可能需【kě néng xū】要批量导出多【dǎo chū duō】🕞个库,我们就可以加【kě yǐ jiā】🐇上【shàng】--databases 或者🍜-B,如下语句:
mysqldump -uroot -p --databases test mysql #空格分🚚隔【gé】
还有的👭时候我们可能需要把🍬数据库内所有🐻的库全【de kù quán】📑部备份,我们就【wǒ men jiù】可以使【kě yǐ shǐ】用-all-databases,如下语【rú xià yǔ】句:
mysqldump -uroot -p -all-databases
可能我🏪们还会【men hái huì】有更多【yǒu gèng duō】的需求🦂,下面是【xià miàn shì】我在网【wǒ zài wǎng】上找的感觉比较全的参数说明,贴出来【tiē chū lái】📝供大家🐧参考🕢。
参数说明
--all-databases , -A
导出全部数据库。
mysqldump -uroot -p --all-databases
--all-tablespaces , -Y
导出全部表空间。
mysqldump -uroot -p --all-databases --all-tablespaces
--no-tablespaces , -y
不导出任何表空间信息。
mysqldump -uroot -p --all-databases --no-tablespaces
--add-drop-database
每个数据库创【jù kù chuàng】建之前添加😳drop数据库语句【yǔ jù】👯。
mysqldump -uroot -p --all-databases --add-drop-database
--add-drop-table
每个数【měi gè shù】🍊据表创建之前添加🌴drop数据表【shù jù biǎo】🚧语句。(默认为【mò rèn wéi】打开状态,使用【shǐ yòng】--skip-add-drop-table取消选项📢)
mysqldump -uroot -p --all-databases (默认添加【jiā】drop语句🍅)
mysqldump -uroot -p --all-databases –skip-add-drop-table (取消🆖drop语句【yǔ jù】)
--add-locks
在每个【zài měi gè】🔲表导出🌤之前增【zhī qián zēng】加LOCK TABLES并且之【bìng qiě zhī】后UNLOCK TABLE。(默认为打开状态【tài】,使用--skip-add-locks取消选😃项🍀)
mysqldump -uroot -p --all-databases (默认添加【jiā】🤚LOCK语句)
mysqldump -uroot -p --all-databases –skip-add-locks (取消【qǔ xiāo】LOCK语句⛅)
--allow-keywords
允许创建是关📣键词的列名字。这由表名前缀【míng qián zhuì】于每个【yú měi gè】🍗列名做【liè míng zuò】到🖥。
mysqldump -uroot -p --all-databases --allow-keywords
--apply-slave-statements
在【zài】👯'CHANGE MASTER'前添加'STOP SLAVE',并且在【zài】👯导出的【dǎo chū de】🦃最后添加'START SLAVE'。
mysqldump -uroot -p --all-databases --apply-slave-statements
--character-sets-dir
字符集文件的目录
mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets
--comments
附加注【fù jiā zhù】🚿释信息。默认为打开🏚,可以用【kě yǐ yòng】--skip-comments取消
mysqldump -uroot -p --all-databases (默认记【mò rèn jì】录注释👜)
mysqldump -uroot -p --all-databases --skip-comments (取消注🥖释【shì】)
--compatible
导出的数据将和其它【hé qí tā】🍯数据库或旧版本的【běn de】MySQL 相兼容【xiàng jiān róng】🚁。值可以为💵ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,
要使用几个值【jǐ gè zhí】,用逗号🥓将它们【jiāng tā men】💠隔开【gé kāi】。它并不保证能完全兼🛥容,而是尽【ér shì jìn】量兼容🔗。
mysqldump -uroot -p --all-databases --compatible=ansi
--compact
导出更【dǎo chū gèng】🥔少的输出信息🏸(用于调【yòng yú diào】试【shì】)。去掉注😌释和头【shì hé tóu】尾等结构。可以使用选项🚑:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys
mysqldump -uroot -p --all-databases --compact
--complete-insert, -c
使用完整的insert语句(包含列⌛名称)。这么做能提高【néng tí gāo】插入效【chā rù xiào】率【lǜ】🦁,但是可【dàn shì kě】🚿能会受到🏥max_allowed_packet参数的🌞影响而导致插入失败【rù shī bài】。
mysqldump -uroot -p --all-databases --complete-insert
--compress, -C
在客户🖊端和服务器之【wù qì zhī】🗻间启用压缩传【yā suō chuán】递所有💣信息【xìn xī】
mysqldump -uroot -p --all-databases --compress
--create-options, -a
在CREATE TABLE语句中🍢包括所有【yǒu】MySQL特性选【tè xìng xuǎn】♊项。(默认为打开状【dǎ kāi zhuàng】👦态)
mysqldump -uroot -p --all-databases
--databases, -B
导出几【dǎo chū jǐ】个数据【gè shù jù】库。参数后面所有名字参【míng zì cān】📔量都被🍀看作数据库名🤔。
mysqldump -uroot -p --databases test mysql
--debug
输出🛸debug信息【xìn xī】,用于调试。默认值【mò rèn zhí】为😦:d:t:o,/tmp/mysqldump.trace
mysqldump -uroot -p --all-databases --debug
mysqldump -uroot -p --all-databases --debug=” d:t:o,/tmp/debug.trace”
--debug-check
检查内存和打开文件使用说明并退出。
mysqldump -uroot -p --all-databases --debug-check
--debug-info
输出调试信息并退出
mysqldump -uroot -p --all-databases --debug-info
--default-character-set
设置默认字符集,默认值为utf8
mysqldump -uroot -p --all-databases --default-character-set=latin1
--delayed-insert
采用延【cǎi yòng yán】时插入🐦方式🍠(INSERT DELAYED)导出数【dǎo chū shù】据
mysqldump -uroot -p --all-databases --delayed-insert
--delete-master-logs
master备份后删除日【shān chú rì】👣志. 这个参🎨数将自【shù jiāng zì】动激活--master-data。
mysqldump -uroot -p --all-databases --delete-master-logs
--disable-keys
对于每个表,用【yòng】🏰/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和👳/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用【yòng】🏰INSERT语句。这样可【zhè yàng kě】🐜以更快【yǐ gèng kuài】地导入dump出来的👜文件,因为它【yīn wéi tā】是在插🌊入所有【rù suǒ yǒu】😘行后创建索引【jiàn suǒ yǐn】的👜。该选项【gāi xuǎn xiàng】只适合MyISAM表,默认为📑打开状态。
mysqldump -uroot -p --all-databases
--dump-slave
该选项将导致主的binlog位置和🕝文件名【wén jiàn míng】🐣追加到导出数⛽据的文件中。设置为【shè zhì wéi】1时🅰,将会以⛰CHANGE MASTER命令输🐳出到数【chū dào shù】据文件【jù wén jiàn】;设置为【shè zhì wéi】2时🅰,在命令【zài mìng lìng】前增加说明信息⭐。该选项将会打【jiāng huì dǎ】开【kāi】--lock
关键词🚆:mysqldump,Mysql,数据库
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1