shell脚本一键导入导出数据库

导出数据

#!/bin/bash

# 导出文件的目录
EXPORT_DIR="/path/to/db"

# 设置MySQL用户名和密码(可以修改为你的MySQL用户名和密码)
MYSQL_USER="root"                    # 你的MySQL用户名
MYSQL_PASSWORD="123456"        # 你的MySQL密码

# 定义要导出的数据库名称数组
DATABASES=("db1" "db2" "db3")

# 检查导出目录是否存在,如果不存在则创建
mkdir -p "$EXPORT_DIR"

# 遍历数据库数组并导出
for DB_NAME in "${DATABASES[@]}"; do
    OUTPUT_FILE="$EXPORT_DIR/$DB_NAME.sql"
    echo "正在导出数据库 $DB_NAME 到 $OUTPUT_FILE"

    # 执行mysqldump命令导出数据库
    mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME > "$OUTPUT_FILE"

    # 检查是否导出成功
    if [ $? -eq 0 ]; then
        echo "数据库 $DB_NAME 导出成功,保存路径:$OUTPUT_FILE"
    else
        echo "数据库 $DB_NAME 导出失败,请检查连接设置或路径"
    fi
done

导入数据库

#!/bin/bash

# 定义导入文件的目录
IMPORT_DIR="/path/to/export"

# 设置MySQL用户名和密码(可以修改为你的MySQL用户名和密码)
MYSQL_USER="root"                    # 你的MySQL用户名
MYSQL_PASSWORD="your_password"        # 你的MySQL密码

# 检查导入目录是否存在
if [ ! -d "$IMPORT_DIR" ]; then
    echo "导入目录 $IMPORT_DIR 不存在,请检查路径。"
    exit 1
fi

# 遍历导入目录中的每个 .sql 文件
for SQL_FILE in "$IMPORT_DIR"/*.sql; do
    # 提取数据库名称(假设数据库名称与文件名一致)
    DB_NAME=$(basename "$SQL_FILE" .sql)
    echo "正在导入文件 $SQL_FILE 到数据库 $DB_NAME"

    # 创建数据库(如果不存在)
    mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE IF NOT EXISTS $DB_NAME;"

    # 导入SQL文件到数据库
    mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME < "$SQL_FILE"

    # 检查是否导入成功
    if [ $? -eq 0 ]; then
        echo "数据库 $DB_NAME 导入成功"
    else
        echo "数据库 $DB_NAME 导入失败,请检查连接设置或文件格式"
    fi
done
上一篇
下一篇