- 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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我一直在阅读有关汇编函数的内容,但对于是使用进入和退出还是仅使用调用/返回指令来快速执行,我感到很困惑。一种方式快而另一种方式更小吗?例如,在不内联函数的情况下,在汇编中执行此操作的最快(stdcal
我正在处理一个元组列表,如下所示: res = [('stori', 'JJ'), ('man', 'NN'), ('unnatur', 'JJ'), ('feel', 'NN'), ('pig',
最近我一直在做很多网络或 IO 绑定(bind)操作,使用线程有助于加快代码速度。我注意到我一直在一遍又一遍地编写这样的代码: threads = [] for machine, user, data
假设我有一个名为 user_stats 的资源,其中包含用户拥有的帖子、评论、喜欢和关注者的数量。是否有一种 RESTful 方式只询问该统计数据的一部分(即,对于 user_stats/3,请告诉我
我有一个简单的 api,它的工作原理是这样的: 用户创建一个请求 ( POST /requests ) 另一个用户检索所有请求 ( GET /requests ) 然后向请求添加报价 ( POST /
考虑以下 CDK Python 中的示例(对于这个问题,不需要 AWS 知识,这应该对基本上任何构建器模式都有效,我只是在这个示例中使用 CDK,因为我使用这个库遇到了这个问题。): from aws
Scala 中管理对象池的首选方法是什么? 我需要单线程创建和删除大规模对象(不需要同步)。在 C++ 中,我使用了静态对象数组。 在 Scala 中处理它的惯用和有效方法是什么? 最佳答案 我会把它
我有一个带有一些内置方法的类。这是该类的抽象示例: class Foo: def __init__(self): self.a = 0 self.b = 0
返回和检查方法执行的 Pythonic 方式 我目前在 python 代码中使用 golang 编码风格,决定移动 pythonic 方式 例子: import sys from typing imp
我正在开发一个 RESTful API。其中一个 URL 允许调用者通过 id 请求特定人员的记录。 返回该 id 不存在的记录的常规值是什么?服务器是否应该发回一个空对象或者一个 404,或者其他什
我正在使用 pathlib.Path() 检查文件是否存在,并使用 rasterio 将其作为图像打开. filename = pathlib.Path("./my_file-name.tif") 但
我正在寻找一种 Pythonic 方式来从列表和字典创建嵌套字典。以下两个语句产生相同的结果: a = [3, 4] b = {'a': 1, 'b': 2} c = dict(zip(b, a))
我有一个正在操裁剪理设备的脚本。设备有时会发生物理故障,当它发生时,我想重置设备并继续执行脚本。我有这个: while True: do_device_control() device
做组合别名的最pythonic和正确的方法是什么? 这是一个假设的场景: class House: def cleanup(self, arg1, arg2, kwarg1=False):
我正在开发一个小型客户端服务器程序来收集订单。我想以“REST(ful)方式”来做到这一点。 我想做的是: 收集所有订单行(产品和数量)并将完整订单发送到服务器 目前我看到有两种选择: 将每个订单行发
我知道在 Groovy 中您可以使用字符串调用类/对象上的方法。例如: Foo."get"(1) /* or */ String meth = "get" Foo."$meth"(1) 有没有办法
在 ECMAScript6 中,您可以使用扩展运算符来解构这样的对象 const {a, ...rest} = obj; 它将 obj 浅拷贝到 rest,不带属性 a。 有没有一种干净的方法可以在
我有几个函数返回数字或None。我希望我的包装函数返回第一个不是 None 的结果。除了下面的方法之外,还有其他方法吗? def func1(): return None def func2(
假设我想设计一个 REST api 来讨论歌曲、专辑和艺术家(实际上我就是这样做的,就像我之前的 1312414 个人一样)。 歌曲资源始终与其所属专辑相关联。相反,专辑资源与其包含的所有歌曲相关联。
这是我认为必须经常出现的问题,但我一直无法找到一个好的解决方案。假设我有一个函数,它可以作为参数传递一个开放资源(如文件或数据库连接对象),或者需要自己创建一个。如果函数需要自己打开文件,最佳实践通常
我是一名优秀的程序员,十分优秀!