MySql批量迁移数据库

导出数据库

指定数据库实例(MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASSWORD)中的所有数据库(表结构、数据)导出到指定目录(BACKUP_DIR)下的多个单独的SQL脚本,每个SQL脚本名称即为数据库名(如my_db.sql脚本的数据库名为my_db),且排除内置的mysql、sys、information_schema、performance_schema数据库,具体导出脚本backup.sh内容如下:

sh 复制代码
#!/bin/bash

# MySQL credentials
MYSQL_USER="root"
MYSQL_PASSWORD="myPassw"
MYSQL_HOST="127.0.0.1"
MYSQL_PORT="3306"

# Directory for backups
BACKUP_DIR="backup-dir"

# Create backup directory if it doesn't exist
mkdir -p "$BACKUP_DIR"

# Loop through each database and back it up
for db in $(mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -P "$MYSQL_PORT" -e 'SHOW DATABASES;' | grep -Ev 'Database|mysql|sys|information_schema|performance_schema'); do
  echo "$BACKUP_DIR/$db.sql"
  mysqldump -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -P "$MYSQL_PORT" "$db" > "$BACKUP_DIR/$db.sql"
done

导入数据库

将备份目录(SQL_DIR)下的多个sql脚本恢复到指定数据库实例(MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASSWORD)中,每个sql脚本名称即为数据库名(如my_db.sql脚本的数据库名为my_db),批量建库、导入SQL脚本的restore.sh内容如下:

sh 复制代码
#!/bin/bash

# MySQL credentials
MYSQL_USER="root"
MYSQL_PASSWORD="myPassw"
MYSQL_HOST="127.0.0.1"
MYSQL_PORT="33306"

# Directory containing SQL scripts
SQL_DIR="backup-dir"

# Loop through each SQL file in the directory
for sql_file in "$SQL_DIR"/*.sql; do
  # Extract the database name from the file name
  db_name=$(basename "$sql_file" .sql)

  # Create the database with specified character set and collation
  echo "Creating database: $db_name"
  mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" -e "CREATE DATABASE IF NOT EXISTS \`$db_name\` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';"

  # Import the SQL file into the database
  echo "Importing data into database: $db_name"
  mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" "$db_name" < "$sql_file"
done

echo "All databases created and data imported successfully."
相关推荐
|华|14 小时前
MySQL主从复制与读写分离
数据库·mysql
_下雨天.14 小时前
MySQL 全量、增量备份与恢复
数据库·mysql
TDengine (老段)14 小时前
TDengine IDMP 工业数据建模 —— 数据情景化
大数据·数据库·人工智能·时序数据库·iot·tdengine·涛思数据
Ujimatsu14 小时前
数据分析相关面试题-SQL部分
数据库·sql·数据分析
Omics Pro14 小时前
端到端单细胞空间组学数据分析
大数据·数据库·人工智能·算法·数据挖掘·数据分析·aigc
羊小蜜.14 小时前
Mysql 02:集合函数(聚合函数)查询全解——COUNT/SUM/AVG/MAX/MIN 实战指南
数据库·mysql·集合函数·聚合函数查询
wangjialelele15 小时前
一文读懂 Redis 持久化与事务
linux·数据库·redis·bootstrap
m0_7066532315 小时前
开源键值存储数据库如何实现微秒级响应
数据库
小宇的天下15 小时前
Calibre LVS Circuit Comparison(1)
linux·数据库·lvs
羊小猪~~15 小时前
【QT】-- 模型与视图简介
开发语言·数据库·c++·后端·qt·前端框架·个人开发