- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章MySql数据库备份的几种方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
mysqldump工具备份 。
备份整个数据库 。
1
|
$> mysqldump -u root -h host -p dbname > backdb.sql
|
备份数据库中的某个表 。
1
|
$> mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql
|
备份多个数据库 。
1
|
$> mysqldump -u root -h host -p
--databases dbname1, dbname2 > backdb.sql
|
备份系统中所有数据库 。
1
|
$> mysqldump -u root -h host -p
--all-databases > backdb.sql
|
直接复制整个数据库目录(对于InnoDB存储引擎不适用)备份 。
windowns: installpath/mysql/data 。
linux: /var/lib/mysql 。
在复制前需要先执行如下命令:
1
2
3
4
|
MYSQL> LOCK TABLES;
# 在复制过程中允许客户继续查询表,
MYSQL> FLUSH TABLES;
# 将激活的索引页写入硬盘。
|
mysqlhotcopy工具备份 。
备份数据库或表最快的途径,只能运行在数据库目录所在的机器上,并且只能备份MyISAM类型的表.
要使用该备份方法必须可以访问备份的表文件.
1
2
|
$> mysqlhotcopy -u root -p dbname /path/
to
/new_directory;
#将数据库复制到new_directory目录。
|
mysql命令导入sql文件还原 。
1
2
3
4
|
$> mysql -u root -p [dbname] < backup.sql
# 执行前需要先创建dbname数据库,如果backup.sql是mysqldump创建的备份文件则执行是不需要dbname。
MYSQL> source backup.sql;
# 执行source命令前需要先选择数据库。
|
直接复制数据库目录还原 。
注: 该方式必须确保原数据库和待还原的数据库主版本号一致,并且只适用于MyISAM引擎的表.
mysqlhotcopy快速恢复 。
停止mysql服务,将备份数据库文件复制到存放数据的位置(mysql的data文件夹),重先启动mysql服务即可(可能需要指定数据库文件的所有者).
1
2
|
$> cp -R /usr/backup/test /usr/
local
/mysql/data
# 如果恢复的数据库已经存在,则使用
DROP
语句删除已经存在的数据库之后,恢复才能成功,还需要保证数据库版本兼容。
|
相同版本数据库之间迁移 。
1
2
3
|
$> mysqldump -h www.abc.com -uroot -p
password
dbname |
$> mysqldump -h www.bcd.com -uroot -p
password
# 将服务器www.abc.com的数据库dbname迁移到服务器www.bcd.com的相同版本数据库上。
|
不同版本的mysql数据库之间的迁移 。
备份原数据库.
卸载原数据库.
安装新数据库.
在新数据库中还原备份的数据库数据.
数据库用户访问信息需要备份mysql数据库.
默认字符集问题,MySQL4.x中使用latin1作为默认字符集,mysql5.x使用utf8作为默认字符集。如果有中文数据需要对默认字符集进行更改.
不同数据库之间的迁移 。
MyODBC工具实现MySQL和SQL Server之间的迁移.
MySQL Migration Toolkit工具.
表的导出和导入 。
SELECT ...... INTO OUTFILE 导出文本文件,该方法只能导出到数据库服务器上,并且导出文件不能已存在.
1
2
3
|
MYSQL>
SELECT
......
INTO
OUTFILE filename [OPTIONS]
MYSQL>
SELECT
*
FROM
test.person
INTO
OUTFILE
"C:\person0.txt"
;
# 将表person里的数据导入为文本文件person0.txt。
|
mysqldump文件导出文本文件(和INTO OUTFILE不一样的是该方法所有的选项不需要添加引号) 。
1
2
3
4
|
$> mysqldump -T path -u root -p dbname [tables] [OPTIONS]
# -T参数表明导出文本文件。path导出数据的目录。
$> mysqldump -T C:\test person -u root -p
# 将test表中的person表导出到文本文件。执行成功后test目录下会有两个文件,person.sql和person.txt
|
mysql命令导出文本文件 。
1
2
3
4
|
MYSQL> mysql -u root -p
--execute="SELECT * FROM person;" test > C:\person3.txt;
# 将test数据库中的person表数据导出到person3.txt文本文件中。
--vartical参数可以将一行分为多行显示。
MYSQL> mysql -u root -p
--vartical --execute="SELECT * FROM person;" test > C:\person3.txt;
#
--html将表导出为html文件,--xml文件将表导出为xml文件
|
LOAD DATA INFILE导入文本文件 。
1
2
3
|
MYSQL>
LOAD
DATA INFILE
'filename.txt'
INTO
TABLE
tablename [OPTIONS] [
IGNORE
number LINES];
# [
IGNORE
number LINES]表示忽略行数
MYSQL>
LOAD
DATA INFILE
'C:\person0.txt'
INTO
TABLE
test.person;
|
mysqlimport导入文本文件 。
1
2
3
4
|
$> mysqlimport -u root -p dbname filename.txt [OPSTONS]
# 导入的表名有文件名决定,导入数据之前表必须存在
$> mysqlimport -uroot -p test C:\backup\person.txt
# 将数据导入到test数据库的person表中。
|
使用mysqlbinlog恢复数据 。
1
2
3
4
|
$> mysqlbinlog [
option
] filename | mysql -u
user
-p
password
# filename为二进制日志文件,
$> mysqlbinlog
--stop-date="2013-03-30 15:27:47" D:\MySQL\log\binlog\binlog.000008 | mysql -u root -p password
# 根据日志文件binlog.000008将数据恢复到2013-03-30 15:27:47以前的操作。
|
启动二进制日志 。
1
2
3
|
log-bin = path/filename #日志文件存储目录和文件名
expire_log_days = 10 #日志自动删除时间
max_binlog_size = 100M # 日志文件最大大小
|
查看二进制日志 。
1
2
3
4
|
MYSQL> SHOW VARIABLES
LIKE
'log_%'
;
MYSQL> SHOW
BINARY
LOGS;
$> mysqlbinlog filename
# filename为二进制日志文件名。
|
删除二进制日志 。
1
2
3
|
MYSQL> RESET MASTER; #删除所有二进制日志
MYSQL> PURGE {MASTER |
BINARY
} LOGS
TO
'log_name'
; #删除文件编号小于log_name编号的文件
MYSQL> PURGE {MASTER |
BINARY
} LOGS BEFORE
'date'
; #删除指定日期以前的文件
|
暂时停止二进制日志(不需要重启mysql服务) 。
1
|
MYSQL>
SET
sql_log_bin = {0|1} #暂停或启动二进制日志。
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/yourblog/archive/2019/02/15/10381962.html 。
最后此篇关于MySql数据库备份的几种方式的文章就讲到这里了,如果你想了解更多关于MySql数据库备份的几种方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如何启用 Mercurial(中央/主)存储库的自动(增量)备份? 我来自颠覆,在那里我能够制作一个提交 Hook ,将更改上传到 S3。 编辑: 如果这种策略对 Mercurial 没有意义,那么什
我想定期创建我的github存储库的备份。是否有一种快速的方法可以在不知道整个列表的情况下将它们全部拉出? 沃尔特 最佳答案 您可以通过GitHub的API获取整个列表: curl http://gi
我正在使用 flatpages在我在本地服务器上开发的站点中。我需要备份平面页面的数据以在最终服务器中使用它。有谁知道怎么做? 最佳答案 在您的本地服务器上运行: python manage.py d
我们已将应用服务升级到 S1,并希望设置自动备份。这是一个带有 SQL 数据库的 .net core 应用程序。对于数据库部分,我得到以下内容: No supported connection str
我们使用一些 阻止 blob 来存储一些持久资源,然后 用于存储事件数据的页面 blob 我们需要备份 blob,因此我尝试使用 AzCopy。它在我的开发机器上工作正常,但在其他慢速机器上失败,并出
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
我正在看这个例子 docker run --rm --volumes-from myredis -v $(pwd)/backup:/backup debian cp /data/dump.rdb /b
我们使用一些 阻止 blob 来存储一些持久资源,然后 用于存储事件数据的页面 blob 我们需要备份 blob,因此我尝试使用 AzCopy。它在我的开发机器上工作正常,但在其他慢速机器上失败,并出
我目前正在使用 Java,并且正在寻找一个程序,该程序可以在每次编译时保存我正在执行的操作的新版本。我不介意它是否不运行,我可以进去编辑类名,使其与 .java 名称匹配。由于我是一个初学者,我总是因
在 RabbitMQ 管理控制台中,出于导入和导出目的,我在概览页面底部看到了导入/导出定义链接。但是有了这个,我能够导出整套队列、交换等。 我有一个 MQ 服务器,其中包含多个应用程序的 MQ 设置
我在 Eclipse IDE 中做了一个 Maven 项目,但在某些时候,我决定以其他名称复制并粘贴工作区位置中的文件夹,以避免在迄今为止工作正常的原始项目中进行一些错误配置,但是,我在执行中遇到了问
有没有办法备份在任何给定元素上设置的所有事件? 背景故事:我有一些代码,当用户将鼠标悬停在某个图标上时(想想悬停帮助文本),会显示绝对定位的“弹出窗口”。如果用户将鼠标悬停在弹出窗口上,它会停留在周围
我需要将 MySQL 数据库移动到新位置。根据workbench,数据库大小只有200MB,但有些表有数百万行,报告索引和数GB的数据长度。结果,EXPORT 的大小为 15GB,导出 DB 并将其复
我有一个工作数据库 - 我想复制它的所有数据(甚至只是其中的 1 个表)并在磁盘上创建备份,并在另一个位置(不是同一台计算机)上创建一个“备份”数据库。另一台计算机未连接到互联网 我该怎么做? 最佳答
我有一个实时数据库,我想要做的是制作一份副本。我可以通过 SSH 和 phpMyAdmin 访问 MySQl。是否有一个命令可以在单个命令/操作中复制/备份数据库,而无需使用导出/导入? 谢谢 最佳答
我是 PostgreSQL 的新手,我正在寻找备份数据库的方法。我知道有 3 种方法 pg_dump,快照和复制以及使用 WAL。您建议使用哪一个来完整备份数据库?如果可能,请提供代码片段。 最佳答案
如何快速备份/恢复mysql数据库中的数据? 最佳答案 mysqldump命令行备份最快, (使用mysql命令行恢复,mysql -u #username# -p #database# < #dum
从管理的角度来看,我是 MySQL 的新手。 在过去的几个小时里,我一直在谷歌上搜索,但没有成功,我想知道是否有人可以为我指明正确的方向,让我知道要用谷歌搜索什么或提出建议。 基本上,我正在寻找有关如
我需要备份创建模式附带的数据库(转储)。使用 putty(通过 SSH)完成这项工作的命令行是什么?我研究并思考了这个命令,但它只执行表备份和数据。 mysqldump -h HOST -u LOGI
我正在尝试创建一个将整个/dev/sda1 备份到/mnt/Backup 的 bash 脚本 /dev/sda1 457G 3.5G 431G 1% / /dev/sdb1
我是一名优秀的程序员,十分优秀!