zoukankan      html  css  js  c++  java
  • MySql 数据库备份

    一、mysqldump介绍

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

    二、mysqldump备份数据库使用

    1、备份mysql数据库的结构和数据

    mysqldump -uroot -p123 DBName>D:\sqlName.sql  DBName为要备份的数据库名,sqlName为输出的sql文件

    2、备份mysql数据库的结构,不备份数据

    mysqldump -uroot -p123 -d DBName>D:\sqlName.sql   比(1)的多了-d

    3、备份mysql数据库的数据,不备份结构

    mysqldump -uroot -p123 -t DBName>D:\sqlName.sql   比(1)上面的多了-t

    4、备份mysql数据库的特定表的数据和结构

    mysqldump -uroot -p123 -B DBName --table tableName>D:\sqlName.sql   比(1)上面的多了-B和 --table tableName

    5、导出表的部分数据

    mysqldump -uroot -proot -h172.16.18.2 logaudit logaudit_log --where=" id <10" > test.sql  

    或者  mysqldump -uroot -proot -h172.16.18.2 logaudit logaudit_log "-wid<10"> test.sql

    相当于 select * from logaudit_log where id < 10 的数据以及表结构都被导入拉test.sql中!

    6、导出一个或多个表的数据,下面是导出表wp_posts和wp_options表的数据

    mysqldump -u root -p wordpress wp_posts wp_options > wordpress_1.sql

    三、mysqldump恢复数据库

    mysql -uroot -p123 DBName < D:\sqlName.sql

    或者进入mysql之后,选择数据库,然后执行source /opt/test.sql也可以恢复

    恢复数据库是需要注意:

    上面这种情况下,

      (1)存储过程及函数并没有转储到文件中。

     

      (2)如果你未使用--quick或者--opt选项,那么mysqldump将在转储结果之前把全部内容载入到内存中。这在你转储大数据量的数据库时将会有些问题。该选项默认是打开的,但可以使用--skip-opt来关闭它。

     

      (3)使用--skip-comments可以去掉导出文件中的注释语句

     

      (4)使用--compact选项可以只输出最重要的语句,而不输出注释及删除表语句等等

     

      (5)使用--database或-B选项,可以转储多个数据库,在这个选项名后的参数都被认定为数据库名

    四、命令收集

    -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   
    打印版本信息并且退出。

    只导出数据库表中的一列或者多列的数据,方式如下:

    ./mysql -h 服务器地址 -u用户名 -p密码  -e  "SELECT 列名 FROM 数据库名字.表名">1.sql

    另外备份和恢复数据库的方法:

    对 Mysql 数据库,数据表的导入,导出,备份,恢复操作

  • 相关阅读:
    【数据结构】线性表&&顺序表详解和代码实例
    【智能算法】超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解
    【智能算法】用模拟退火(SA, Simulated Annealing)算法解决旅行商问题 (TSP, Traveling Salesman Problem)
    【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
    10. js时间格式转换
    2. 解决svn working copy locked问题
    1. easyui tree 初始化的两种方式
    10. js截取最后一个斜杠后面的字符串
    2. apache整合tomcat部署集群
    1. apache如何启动
  • 原文地址:https://www.cnblogs.com/bugY/p/2212103.html
Copyright © 2011-2022 走看看