文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎样实现Mysql 备份与恢复

2024-04-02 19:55

关注

怎样实现Mysql 备份与恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

逻辑备份:
1.mysqldump(数据导出工具)
mysqldump options db_name[table_name]//备份单个数据库
mysqldump 选项 --database database-name1 [databases-name2]....//备份指定的数据库一个或者多个
mysqldump 选项 --all-database //备份所有的数据库
链接选项:
-u :指定用户名
-p:指定密码
-h:指定服务器ip或者域名
-P(大写):指定端口
eg:/usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user>/home/wuxiaoxiao/user.txt
输出内容选项:
--add-drop-database:每个数据库创建语句之前加上drop database语句
--add-drop-table:每个表创建语句之前加上drop table语句
-n:不包含数据库的创建语句
-t:不包含数据表的创建语句
-d:不包含数据
输出格式选项:
--compact:使输出结果简洁
-c --compact-insert:使输出文件中的insert语句包含字段名
-T:将数据库表中的数据备份为单纯的数据文本和建表sql俩个文件
--fields-terminated-by=name(域分割符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域可选引用符)
--fields-escaped-by=name(转移字符)
eg:/usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user -T ./bak
字符集选项:
--default-character-set=name:设置导出的客户端字符集
eg:mysql -u root -p --compact --default-character-set=utf8 BBS user > test.txt
其他选项:
-F:备份前刷新日志
-l:给所有表加读锁(备份期间使用,使备份的数据保持一致性)

[@more@]

备份:
备份所有数据库:
mysqldump -u root -p --all-database > test.sql
备份数据库test
mysqldump -u root -p test > test.sql
备份数据库test下的temp表:
mysqldump -u root -p test demp > test.sql
备份数据库下的所有表为逗号分割的文本,备份到/temp
mysqldump -u root -p test -T /temp --fields-terminated-by ','
完全恢复:
msyql -u root -p < bakfile
注意:将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做
mysqlbinlog binlog-file | mysql -u root -p***
举个完整的mysqldump备份和恢复的例子:
上午9点备份数据库
mysqldump -u root -p -l -F test > test.dmp
9点半备份完毕,然后想数据库中插入数据
10点数据库突然故障,数据无法访问,需要恢复备份
mysql -u root -p test < test.dmp
恢复后的数据并不完整,9点半插入的数据并没有恢复
使用mysqlbinlog恢复自mysqldump备份以来的binlog
mysqlbinlog binlogfilename | mysql -u root -p test
基于时间点恢复:
如果上午10点发生了误操作.可以用下面语句进行备份和binlog将数据库恢复到故障前:
mysqlbinlog --stop-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
跳过故障的时间点,继续执行后面的binlog,完成恢复
mysqlbinlog --start-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
基于位置恢复:
mysqlbinlog --start-date="2005-04-20 9:55:59" --stop-date="2005-04-20 10:05:00" binlogfile > test.sql
查看此文件,找出出错语句前后的位置号,例如是368312,368315
mysqlbinlog --stop-position="368312" binlogfile | mysql -u root -p test
mysqlbinlog --start-position="368315" binlogfile | mysql -u root -p test

表的导入和导出:
导出:
mysqldump -u username -p -T target_dir dbname tablename [options]
options:
--fields-terminated-by=name(域分割符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域可选引用符)
--fields-escaped-by=name(转移字符)
备份数据库下的所有表为逗号分割的文本,备份到/temp
mysqldump -u root -p -T /temp test --fields-terminated-by ',' --fields-optionally-enclosed-by '"'
导入:
msyqlimport -u root -p [LOCAL] dbname order_tab.txt [options]
OPTIONS:
--fields-terminated-by=name(域分割符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域可选引用符)
--fields-escaped-by=name(转移字符)
eg:mysqlimport -u root -p test order.txt --fields-terminated-by=',' --fields-enclosed-by='"'

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯