当前位置:  数据库>mysql

命令行模式下备份、还原 MySQL 数据库的语句小结

    来源: 互联网  发布时间:2014-10-04

    本文导语:  为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇“超时”而操作失败。所以,...

为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇“超时”而操作失败。所以,学会在命令行模式下备份、还原数据库,还是很有必要的。

1、备份数据库
在 Linux 命令行模式下备份 MySQL 数据库,用的是 mysqldump 命令:

代码如下:

mysqldump -u mysqluser -p test_db


对以上命令稍作解释:

•-u 意味着你要指定一个 MySQL 用户名来连接数据库服务,如上面的 mysqluser 即为 MySQL用户名。
•-p 则意味着你需要有一个有效的,与以上用户名对应的密码。
•最后一个参数则是需要备份的那个数据库的名称:test_db

如果直接执行以上命令,紧接着就会提示需要输入 MySQL 密码,数据密码后,它会直接将备份出来的 SQL 脚本显示在屏幕上,这当然不是我们想要的结果。我们需要把数据库备份成一个文件,可用以下命令:
代码如下:

mysqldump -u mysqluser -p test_db > test_db.sql

这样,就会在当前目录下备份出一个名为test_db.sql的文件。

当然,如果数据库体积比较大,通常会对备份出来的文件进行压缩,备份和压缩可以在同一行命令内完成:
代码如下:

mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz

压缩的时候,最好再给文件名加上扩展名.gz,以便下次还原数据库的时候心中有数。

2、还原数据库
还原数据库的命令也很简单,如果你备份出来的文件是未压缩的版本,则还原数据库的命令如下:
代码如下:

cat test_db.sql | mysql -u mysqluser -p test_db

用cat命令,把 SQL 脚本内容输出给 MySQL 程序以便还原。可以看到,MySQL 后面的几个参数,跟备份时候的一样。

如果是已压缩版本的备份文件,则需用以下命令才能还原:
代码如下:

gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db

类似地,用gunzip命令,解压缩,然后把脚本内容输出给 MySQL 程序以便还原。

2012-10-08 update:

如不考虑将 .sql 文件压缩打包的话,也可以用下面两条语句分别导出、导入。
代码如下:

mysqldump -u root -p test_db > test_db.sql
mysql -u root -p test_db < test_db.sql


备份MySQL数据库的命令
代码如下:

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
代码如下:

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql


直接将MySQL数据库压缩备份
代码如下:

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表
代码如下:

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库
代码如下:

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构
代码如下:

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库
代码如下:

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令
代码如下:

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库
代码如下:

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器
代码如下:

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

    
 
 

您可能感兴趣的文章:

  • MYSQL 修改root密码命令小结
  • MySQL数据库管理常用命令小结
  • MySQL数据库备份和还原的常用命令小结
  • SQL Server常用管理命令小结
  • MySQL导入导出.sql文件及常用命令小结
  • 十个节省时间的MySQL命令小结
  • 关于命令行执行for语句
  • sql语言中delete删除命令语句详解
  • Oracle中备份表的简单sql命令语句
  • sed 命令语句高手 请进
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • gdb调试时next命令为什么不走return语句?
  • 命令求解:去掉#define语句中的sizeof()
  • (很急)谢谢!我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet中能点击一个按钮来打开这个Apple
  • dos 高手请进,关于bat中如何使用if 来判断一行命令成功与否后,所执行的分支语句
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • 在命令行下进行Oracle用户解锁的语句
  • 教你如何在MySQL命令行中使用SQL语句的规则
  • linux命令解析,开发中遇到的一个启动脚本的语句
  • SQL Server利用bcp命令把SQL语句结果生成文本文件
  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
  • 急,我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet1中点击一个按钮来打开这个Applet2.谢谢
  • 谁能告诉我dos下的所有命令语句?谢谢!
  • oracle查询语句大全(oracle 基本命令大全一)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 不小心使用mk32fs命令格式化了NTFS分区,有什么办法可以还原嘛?
  • mysql命令行还原phpMyAdmin导出的含有中文的SQL文件
  • 自用mysql自带命令实现数据库备份还原的方法
  • windows下cmd命令行显示UTF8字符设置(CHCP命令)
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • c/c++预处理命令预#error介绍
  • 请教:使用system(命令)或者exec(命令)启动一个进程执行命令,如何判断这个命令是否启动成功或正在运行?
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 使用ps命令,如何使用系统命令根据进程名称获取进程和子进程的ID?除了ps,还有其它系统命令的办法吗?谢谢。
  • c/c++预处理命令预#undef介绍
  • 如何运行外部命令后不等外部命令运行结束直接运行下一条命令
  • c/c++预处理命令预#pragma介绍
  • 请问:早redhat 7.3的字符模式下:改(设)IP 命令是:ifconfig eth0 192.168.0.xx ,那么改(设)掩码命令是什么呢? 还有改(设)网关地址命令是什
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 请教unix常用命令命令问题
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • linux下执行命令为什么要在命令前加./
  • c/c++预处理命令预#line介绍
  • 查询ls命令的命令文件属于系统中的哪个软件包?(在线等)
  • c/c++预处理命令预#include介绍
  • linux命令行下使用curl命令查看自己机器的外网ip
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • linux中有没有什么命令能列出所有linux的内部命令


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3