• mysqldump 使用小结


    语法:

    • 备份某个数据库:
    mysqldump -uroot -p*** [options] –-databases DB_name  > back_db_name.sql
    

    --databases:保留创建数据库语句

    • 备份数据库中的某张表:
    mysqldump -uroot -p*** [options] DB_name Tb_name > back_tb_name.sql
    

    恢复时需要指定库名

    • 只备份表结构:
    mysqldump -uroot -p*** --no-data DB_name Tb_name > back_tb_struct.sql
    

    ​ -d, --no-data No row information.

    • 备份所有数据库:
    mysqldump -uroot -p*** [options] --single-transaction –-all-databases > back_all_db.sql
    #远程备份
    mysqldump -uroot -p*** [options] --single-transaction –-all-databases | ssh -p 22 -o StrictHostKeyChecking=no  127.0.0.1 "cat -> /tmp/back_all_db.sql"
    

    常用选项:

    • --single-transaction:该选项导出数据之前提交一个BEGIN SQL语句,不会阻塞任何应该程序而且能保证导出数据时的一致性状态。

    • --lock-all-tables:备份之前锁定所有库的所有表。

    • --flush-logs:开始导出之前刷新日志。请注意如果导出多个数据库(选项--databases或者--all-databases),将会逐个数据库刷新日志,除使用--lock-all-tables 或者--master-data外,这种情况下 日志将会被刷新一次,相应的所有表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables或者-master-data和--flush-logs

    • --routines|-R:导出存储过程以及自定义函数

    • --evnets|-E:导出事件

    • --no-data|-d:不到表数据

    • --master-data={0|1|2}: 该选项将binlog的位置和文件名追加到输出文件中。如果是0,不记录日志的位置;如果为1,以CHANGE MASTER TO 的方式记录位置,可用于恢复后直接启动从服务器;如果为2,CHANGE MASTER TO 的方式记录位置,默认被注释。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间)。该选项自动关闭--lock-tables选项。

    数据导入导出

    该功能在MySQL 5.7.6版本后必须要secure_file_priv指定一个已存在的目录,然后outfile所输出的文件名在这个目录下

    secure_file_priv参数说明:

    1. 这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATASELECT ... INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限;

    2. 如果这个参数为空,这个变量没有效果,可以再任意位置执行导入导出;

    3. 如果这个参数设为一个目录名,MySQL服务只允许在这个目录中执行文件的导入和导出操作,这个目录必须存在,MySQL服务不会创建它;

    4. 如果这个参数为NULL,MySQL服务会禁止导入和导出操作。

    导出表中某个字段的数据:

    select [列名] into outfile '/dir/path/filename' from [表名];
    

    导入数据:

    load data infile '/dir/path/filename' into table [表名];  #文件的列出应与表相同
    

    先导出表结构:

    mysqldump -uroot -p*** --single-transaction --databases -d [dbname]> /tmp/mysql_priv/db_struc.sql
    

    再导出数据表:

    mysqldump -uroot -p*** --single-transaction --skip-tz-utc -T /tmp/mysql_priv/ [dbname]
    

    先恢复表结构:

    mysql -uroot -p*** [dbname] < /tmp/mysql_priv/db_struc.sql
    

    再导入txt数据:

    mysqlimport --local -uroot -p*** [dbname] /tmp/mysql_priv/tablename.txt
    
  • 相关阅读:
    iOS开发系列-Category
    OC开发系列-内存管理
    OC开发系列-@property和@synthesize
    OC开发系列-成员变量的作用域
    OC开发系列-类与对象
    MySQL
    JavaWeb
    POJ1845-Sumdiv大数约数和
    poj1159 Palindrome 区间DP
    poj 2955 Brackets 区间DP
  • 原文地址:https://www.cnblogs.com/wshenjin/p/9531125.html
Copyright © 2020-2023  润新知