mysql数据库的备份/还原/导出/导入

1、备份或导出

  1. mysqldump —databases 数据库名 >d:\lison_test.sql;
  2. # 或者
  3. mysqldump -u用户名 —password='' -P3306 数据库名 > /home/choueabc.sql;
  4. mysqldump -u用户名 —password='' —no-data -P3306 数据库名 > /home/choueabc.sql;
  5. mysqldump -u用户名 —password='' -P3306 数据库名 —tables 表1 表2 > /home/choueabc.sql;
  6. mysqldump -u用户名 -p密码 -h 外网IP -P3306 数据库名 > /home/choueabc.sql;
  7. 特殊符号的密码要用: —password='你的密码'
  8. 注意:用mysqldump中带有- -databases选项表示指定的一个数据库,生成的备份文件中是带有`CREATE DATABASE和USE`语句的

2、还原/导入,先查看之前数据库里的表的总数,还原之后再看数据表数量是否前后一致

  1. mysql -u用户名 -p密码;回车
  2. show databases;回车
  3. use 数据库名;//选择你要导出的数据库
  4. source d:\abc.sql; //注意路径,如果是cd到当前目录包含.sql源文件,则可以写成:source ./abc.sql;
  5. 开始导入,再次出现”mysql>”并且没有提示错误即还原成功。

导入的大小限制

在mysql的安装目录下 找到 my.ini文件 加入以下代码:

  1. interactive_timeout = 120
  2. wait_timeout = 120
  3. max_allowed_packet = 32M

显示进度条:

  1. mysqldump -u [username] -p[password] [database_name] | pv -lep > backup.sql;
  2. yum install -y pv

3、导出的shell脚本

  1. #!/bin/bash
  2. # 配置参数(根据实际情况修改)
  3. # 本地数据库配置
  4. LOCAL_DB_USER="xxx"
  5. # LOCAL_DB_PASS=''
  6. LOCAL_DB_HOST="localhost"
  7. LOCAL_DB_NAME="xxx"
  8. LOCAL_DB_PORT="3307"
  9. # 多表用空格隔开
  10. LOCAL_DB_TABLES_ONE="abc_test"
  11. # 临时文件
  12. DUMP_FILE="dump.sql"
  13. #DUMP_FILE="dump_$(date +%Y%m%d%H%M%S).sql"
  14. # 设置脚本出错立即退出
  15. set -euo pipefail
  16. # 函数:显示错误并退出
  17. error_exit() {
  18. echo "Error: $1" >&2
  19. exit 1
  20. }
  21. # 安全提示输入密码(不显示输入内容)
  22. read -s -p "请输入 MySQL 密码: " LOCAL_DB_PASS
  23. echo
  24. # 1. 导出MySQL数据
  25. echo "one Exporting database from local..."
  26. mysqldump --single-transaction --quick --lock-tables=false \
  27. -u"$LOCAL_DB_USER" -p"$LOCAL_DB_PASS" \
  28. -h"$LOCAL_DB_HOST" -P"$LOCAL_DB_PORT" "$LOCAL_DB_NAME" $LOCAL_DB_TABLES_ONE > "$DUMP_FILE" || \
  29. error_exit "MySQL export failed. Check credentials and database status."
  30. echo "success completed: $DUMP_FILE"

表模糊的写法:

  1. 没有方法