mysql数据库的备份/还原/导出/导入
1、备份或导出
mysqldump —databases 数据库名 >d:\lison_test.sql;# 或者mysqldump -u用户名 —password='' -P3306 数据库名 > /home/choueabc.sql;mysqldump -u用户名 —password='' —no-data -P3306 数据库名 > /home/choueabc.sql;mysqldump -u用户名 —password='' -P3306 数据库名 —tables 表1 表2 > /home/choueabc.sql;mysqldump -u用户名 -p密码 -h 外网IP -P3306 数据库名 > /home/choueabc.sql;特殊符号的密码要用: —password='你的密码'注意:用mysqldump中带有- -databases选项表示指定的一个数据库,生成的备份文件中是带有`CREATE DATABASE和USE`语句的
2、还原/导入,先查看之前数据库里的表的总数,还原之后再看数据表数量是否前后一致
mysql -u用户名 -p密码;回车show databases;回车use 数据库名;//选择你要导出的数据库source d:\abc.sql; //注意路径,如果是cd到当前目录包含.sql源文件,则可以写成:source ./abc.sql;开始导入,再次出现”mysql>”并且没有提示错误即还原成功。
导入的大小限制
在mysql的安装目录下 找到 my.ini文件 加入以下代码:
interactive_timeout = 120wait_timeout = 120max_allowed_packet = 32M
显示进度条:
mysqldump -u [username] -p[password] [database_name] | pv -lep > backup.sql;yum install -y pv
3、导出的shell脚本
#!/bin/bash# 配置参数(根据实际情况修改)# 本地数据库配置LOCAL_DB_USER="xxx"# LOCAL_DB_PASS=''LOCAL_DB_HOST="localhost"LOCAL_DB_NAME="xxx"LOCAL_DB_PORT="3307"# 多表用空格隔开LOCAL_DB_TABLES_ONE="abc_test"# 临时文件DUMP_FILE="dump.sql"#DUMP_FILE="dump_$(date +%Y%m%d%H%M%S).sql"# 设置脚本出错立即退出set -euo pipefail# 函数:显示错误并退出error_exit() {echo "Error: $1" >&2exit 1}# 安全提示输入密码(不显示输入内容)read -s -p "请输入 MySQL 密码: " LOCAL_DB_PASSecho# 1. 导出MySQL数据echo "one Exporting database from local..."mysqldump --single-transaction --quick --lock-tables=false \-u"$LOCAL_DB_USER" -p"$LOCAL_DB_PASS" \-h"$LOCAL_DB_HOST" -P"$LOCAL_DB_PORT" "$LOCAL_DB_NAME" $LOCAL_DB_TABLES_ONE > "$DUMP_FILE" || \error_exit "MySQL export failed. Check credentials and database status."echo "success completed: $DUMP_FILE"
表模糊的写法:
没有方法
