数据导出\导入

mysqldump

  • -t 只导出数据 ,不导结构 , --skip-lock-tables 不锁表

    mysqldump -h127.0.0.1 -P3306 -uuser -ppwd -t --skip-lock-tables test tab1>tab1.sql

  • -d 只备份结构 --skip-add-drop-table 禁用drop tabe(默认会有drop table)

    mysqldump -hlocalhost -P3306 -uuser -ppwd -d --skip-add-drop-table test tab1> test.tab1.sql

  • 整库备份

    mysqldump -hlocalhost -P3306 -uuser -ppwd -B test > test.sql

  • 重要参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -B:指定多个库,在备份文件中增加建库语句和use语句
    --compact:去掉备份文件中的注释,适合调试,生产场景不用
    -A:备份所有库
    -F:刷新binlog日志
    --master-data:在备份文件中增加binlog日志文件名及对应的位置点
    -x --lock-all-tables:锁表
    -l:只读锁表
    -d:只备份表结构
    -t:只备份数据
    --single-transaction:适合innodb事务数据库的备份
    InnoDB表在备份时,通常启用选项--single-transaction来保证备份的一致性,原理是设定本次会话的隔离级别为Repeatable read,来保证本次会话(也就是dump)时,不会看到其它会话已经提交了的数据。

    导入备份数据

  • 命令行导入

    mysql -hlocalhost -P3306 -uuser -ppwd test < test.test.sql

查询

  • 命令行查询

    mysql -hlocalhost -P3306 -uroot -p123456 -e "use test; set names utf8; select * from img_library limit 10;" > tmp.xls