用mysqldump远程备份mysql数据库

mysqldump是备份mysql数据库的一种好工具。它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以结合计划任务实现定时远程备份数据库。

操作用mysqldump备份数据库的用户需要的权限比较小,只需要select和lock table的权限就足够了。所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏。

在备份数据库之前我们要做足准备功夫,首先创建了执行备份操作的数据库用户——backup,密码为:123456。其次,确定我们要备份哪个数据库,放在哪里。然后,确定数据库的备份文件要放到哪里。

假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为backup_test的数据库,并把备份文件放到D:\bak\的文件夹中。又假设我们的操作系统为windows xp,于是我们可以用以下的方法执行备份操作:

我们可以使用windows自带的命令提示符(调用命令提示符的方法有多种,最常用的就是点击开始菜单,选择“运行”,输入cmd的命令就可以启动了),在命令提示符中输入以下命令:

mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql

在这段命令中:

mysqldump 是myqldump的程序名了;

-u 是数据库的用户名,后面紧跟着用户名backup;

-p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;

-h 是数据库的地址,如果没有此项表明是备份本地的数据库;

backup_test 要备份的数据库名称;

> 表明该数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。

一旦执行该命令后,mysqldump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。

如果把这个命令写成批处理文件,通过windows的计划任务可以实现定时备份数据。

在windows下用mysqldump备份数据库,因为没有gzip的压缩引擎,因此不能对备份数据库进行压缩,因此如果备份文件多了要经常清理过期的数据库备份文件。

如果给出的信息室1044,则表示你没有足够的权限来备份服务器上的数据库。

下面详细讲解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

用mysqldump远程备份mysql数据库相关推荐

  1. mysqldump远程备份mysql数据库方法

    为什么80%的码农都做不了架构师?>>>    操作用mysqldump备份数据库的用户需要的权限比较小,只需要select和lock table的权限就足够了.所以可以创建一个备份 ...

  2. mysql定期执行备份语句_【mysql】备份篇1:使用系统计划任务+mysqldump 定时备份mysql数据库 不用输入密码自动导出sql文件...

    项目部署在服务期上之后,有了新的需求,需要每月定时备份mysql数据库的所有数据! 查找了网上的多篇文章之后,自己又对bat文件中的mysqldump语句进行改进,可以实现了不用输入密码就能自动定时备 ...

  3. linux 远程备份mysql数据库_使用脚本自动化远程备份MySQL数据库

    通常情况下.MySQL都需要备份,备份的方法有很多种.下面是我用脚本配合计划任务完成的自动备份远程的数据库. 一. 确认备份方案: 备份机:ip192.168.8.51 数据库服务器:ip192.16 ...

  4. linux php mysqldump,Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

    利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用) 设计该脚本的一些设计.编写考虑: 利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使 ...

  5. Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

    设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysql ...

  6. mysqldump导入导出mysql数据库

    mysqldump导入导出mysql数据库 mysqldump导入导出mysql数据库 2011-02-21 16:33 数据库的基本导入\导出的命令 是 mysqldump 和 source 在li ...

  7. 编写一键备份MYSQL数据库脚本

    远程备份mysql数据库 1.mysql需要有远程访问权限 这里我为了方便,就设置所有地址都可以访问了.如果没有,在数据库中执行如下命令 创建备份用户及授权 >grant select,lock ...

  8. linux定时备份数据库到远程ftp,Linux下自动备份MySQL数据库并上传到远程FTP服务器...

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库到 ...

  9. mysql数据库ftp备份_Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本...

    说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的vos3000db数据库到/home/mysql_data里面,并且保存为vos3000db_bak_2012_06_30.t ...

最新文章

  1. shell脚本编程之函数
  2. RHEL5系统下故障处理方法
  3. POJ - 1185 炮兵阵地(状压dp)
  4. RHEL6入门系列之三,GNU计划与Linux发行版
  5. 新上手jupyterlab安装及问题解决
  6. 官网下载mysql源码
  7. java 按照笔画排序,怎样用java把名单按姓氏笔画排序
  8. 计算机d盘无法格式化,为什么不能格式化D盘?D盘无法格式化的解决方法
  9. 解决问题:Parameter 0 of method modifyRequestBodyGatewayFilterFactory inorg.springframework.cloud.gateway
  10. python数据分析就业市场调查报告
  11. 一个C#开发者学习SpringCloud搭建微服务的心路历程
  12. kryo java_使用Kryo序列化任意Java对象(获取IllegalAccessError)
  13. 2020华为春招面试:一面二面三面(一下午4h左右完成)已挂
  14. BZOJ3161: 孤舟蓑笠翁
  15. 微信小程序前端解密获取用户信息
  16. Android 内存卡 / Micro SD 卡 / TF 卡 / 存储卡 剩余容量 / 剩余内存 / 可用空间、总容量的 2 种获取方式
  17. Multi-Head Self-Attention里投影矩阵WQ/WK/WV是否共享的问题
  18. 中秋qq表情包 2004 瑞星杀毒软件2007
  19. 【Spring Security】authorization server 认证服务器
  20. Java浅克隆与深克隆-clone

热门文章

  1. 【SRIO】4、Xilinx RapidIO核详解
  2. vivado中ILA核的使用
  3. 【 Notes 】COMPARISON OF BASIC METHODS AND POSITIONING SYSTEMS
  4. OFDM专题之子载波间干扰问题(二)
  5. 《Windows Vista for Developers》系列
  6. 星巴克和阿里“结婚”,这后面真的不简单
  7. MyEclipse-Web开发时何时重启tomcat、重新部署
  8. hdu 1723 DP/递推
  9. SCCM 2012 Part 2 部署前AD准备
  10. linux下如何查看文件大小 快速找到最大文件的方法