时间: 2021-08-13 作者:daque
运用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:mysqldata 找到对应数据库称呼的子目次 c:mysqldatatesta 粘贴正片到hostb的data目次下,是hosta同hostb mysql数据目次下的文献沟通 革新hostb的phpmyadmin查看一下数据库列表,咱们看到testa仍旧展示,而且作查问窜改等操纵都平常,备份回复回复胜利 考查论断:mysql的数据库不妨经过文献情势生存,备份,回复只有将相映文献目次回复即可,无需运用其它工完备份。 二、正轨的本领(官方倡导): 导出要用到mysql的mysqldump东西,基础用法是: mysqldump [options] database [tables] 即使你不给定任何表,所有数据库将被导出。 经过实行mysqldump --help,你能获得你mysqldump的本子扶助的选项表。 提防,即使你运转mysqldump没有--quick或--opt选项,mysqldump将在导出截止前承载所有截止集到外存中,即使你正在导出一个大的数据库,这将大概是一个题目。 mysqldump扶助下列选项: --add-locks 在每个表导出之前减少lock tables而且之后unlock table。(为了使得更快地插入到mysql)。 --add-drop-table 在每个create语句之前减少一个drop table。 --allow-keywords 承诺创造是要害词的列名字。这由在列名前方加表名的本领做到。 -c, --complete-insert 运用完备的insert语句(用列名字)。 -c, --compress 即使存户和效劳器均扶助收缩,收缩两者间一切的消息。 --delayed 用insert delayed吩咐插出道。 -e, --extended-insert 运用崭新多行insert语法。(给出更收缩而且更快的插入语句) -#, --debug[=option_string] 盯梢步调的运用(为了调节和测试)。 --help 表露一条扶助动静而且退出。 --fields-terminated-by=... --fields-enclosed-by=... --fields-optionally-enclosed-by=... --fields-escaped-by=... --fields-terminated-by=... 那些采用与-t采用一道运用,而且有相映的load data infile子句沟通的含意。 load data infile语法。 -f, --flush-logs 在发端导出前,洗掉在mysql效劳器中的日记文献。 -f, --force, 纵然咱们在一个表导出功夫获得一个sql缺点,连接。 -h, --host=.. 从定名的长机上的mysql效劳器导出数据。缺省长机是localhost。 -l, --lock-tables. 为发端导出锁定一切表。 -t, --no-create-info 不写入表创造消息(create table语句) -d, --no-data 不写入表的任何行消息。即使你只想获得一个表的构造的导出,这是很有效的! --opt 同--quick --add-drop-table --add-locks --extended-insert --lock-tables。 该当给你为读入一个mysql效劳器的尽大概最快的导出。 -pyour_pass, --password[=your_pass] 与效劳器贯穿时运用的口令。即使你不指定“=your_pass”局部,mysqldump须要来自结尾的口令。 -p port_num, --port=port_num 与一台长机贯穿时运用的tcp/ip端标语。(这用来贯穿到localhost除外的长机,由于它运用 unix套接字。) -q, --quick 不缓冲查问,径直导出至stdout;运用mysql_use_result()做它。 -s /path/to/socket, --socket=/path/to/socket 与localhost贯穿时(它是缺省长机)运用的套接字文献。 -t, --tab=path-to-some-directory 对于每个给定的表,创造一个table_name.sql文献,它包括sql create 吩咐,和一个table_name.txt文献,它包括数据。 提防:这惟有在mysqldump运转在mysqld保护过程运转的同一台呆板上的功夫才处事。.txt文献的方法按照--fields-xxx和--lines--xxx选项来定。 -u user_name, --user=user_name 与效劳器贯穿时,mysql运用的用户名。缺省值是你的unix登录名。 -o var=option, --set-variable var=option 树立一个变量的值。大概的变量被列在底下。 -v, --verbose 繁杂形式。打字与印刷出步调所做的更多的消息。 -v, --version 打字与印刷本子消息而且退出。 -w, --where=’where-condition’ 只导出被采用了的记载;提防引号是强迫的! "--where=user=’jimf’" "-wuserid>1" "-wuserid<1" 最罕见的mysqldump运用大概创造所有数据库的一个备份: mysqldump --opt database > backup-file.sql 然而它对用来自于一个数据库的消息充溢其余一个mysql数据库也是有效的: mysqldump --opt database mysql --host=remote-host -c database 因为mysqldump导出的是完备的sql语句,以是用mysql存户步调很简单就能把数据导出了: mysqladmin create target_db_name mysql target_db_name < backup-file.sql