首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql(九)、数据备份与还原

优秀文章,第一时间收到!

KS

Knowledge Sharing

知识分享

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得从本文能学到知识,请把知识与别人分享。

1、数据库备份

mysqldump命令的工作原理是先查出需要备份的表的结构,再在文本中生成一个CREATE语句,然后将表中所有记录转换成一条INSERT语句。

(1)备份一个数据库,语法格式:

dbname是数据库的名称,table1和table2是表的名称没有该参数时将备份这个数据库,BackupName.sql表示备份文件的名称可以是绝对路径

注:1>mysqldump命令备份的文件并非一定是.sql也可以是其他格式如.txt,通常是.sql

2>不登录mysql,直接在MySQL中执行备份语句,如:

(1) 备份多个数据库,语法格式:

(2) 备份所有数据库,语法格式:

(3) 可以关闭服务器,在将数据库目录复制出来,但是这不是最好的备份方法

(4) 使用mysqlhotcopy工具快速备份,这种备份方式mysqldump命令快,工作原理是先将需要备份的数据库加上一个读操作锁,然后用FLUSHTABLES将内存中的数据写回到硬盘上的数据库中,最后被备份的数据库文件复制到目标目录,命令格式如下:

注:1> mysqlhotcopy工具不是MySQL自带的,需要安装Perl的数据库接口报

2>由于mysqlhotcopy工具的工作原理是将数据库文件拷贝到目标目录,因此其只能备份MyISAM类型的表,不能用来备份InnoDB类型的表

实操:

0、在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:

mysqldump

1、最常用的:

【windows下:】

【linux下:】

这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中;

其中-uroot参数表示访问数据库的用户名是root,-p参数表示访问数据库的密码是123456;

2、导出整个数据库

【格式:】

【windows下:】

【linux下: 在安装目录mysql/bin下输入命令】

3、导出一个表,包括表结构和数据

【格式:】

【windows下:】

【linux下: 在安装目录mysql/bin下输入命令】

4、导出一个数据库结构

【windows下:】

【linux下: 在安装目录mysql/bin下输入命令】

5、导出一个表,只有表结构

【格式:】

【windows下:】

【linux下: 在安装目录mysql/bin下输入命令】

2、数据还原,语法规则:

第一种导入方式:(推荐)

(linux下和Windows 下语法是一样的,只是路径的书写方式不同而已)

1、创建一个空数据库

2、进入MySQL安装目录bin下

3、导入表数据的命令

(将选定的表导入到指定的数据库)

4、导入数据库数据的命令:

例子:

(将备份出来的数据库导入,这里没有写数据库名,也可以写但要求是要写同样的名称)

第二种导入方式:(常用source 命令)

需要先进入mysql数据库控制台:

如mysql -uroot -p123456

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

3、日志

启动日志功能会降低MySQL数据库的执行速度,且会占用大量磁盘空间和使用很多内存,一般不开启MySQL数据库的日志功能

(1)二进制日志:以二进制文件形式记录数据库中的操作,但不记录查询语句

(2)错误日志:记录MySQL服务器的启动、关闭和运行错误等信息

(3)通用查询日志:记录用户登录和记录查询的信息

(4)慢查询日志:记录执行时间超过指定时间的操作

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611G08SL300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券