当前位置: 首页 > news >正文

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内容如下:

#!/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'); doecho "$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内容如下:

#!/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 namedb_name=$(basename "$sql_file" .sql)# Create the database with specified character set and collationecho "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 databaseecho "Importing data into database: $db_name"mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" "$db_name" < "$sql_file"
doneecho "All databases created and data imported successfully."
http://www.lryc.cn/news/435950.html

相关文章:

  • 一、selenium自动化简介selenium工具集
  • CCF推荐B类会议和期刊总结:(计算机网络领域)
  • [Web安全 网络安全]-文件包含漏洞
  • 使用soui4实现一个拾色器
  • Thinkphp5 + Swoole实现邮箱异步通知
  • LLM - 理解 多模态大语言模型 (MLLM) 的预训练与相关技术 (三)
  • 工具篇之Joda-Time
  • 架构师应该懂得东西,软考应该具备的
  • 图论篇--代码随想录算法训练营第五十一天打卡| 99. 岛屿数量(深搜版),99. 岛屿数量(广搜版),100. 岛屿的最大面积
  • 什么是API网关(API Gateway)?
  • 对话:LLC磁集成能否成为充电桩模块电源常态产品?
  • 基于SSM的二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • 视觉语言模型中的人脸社会感知
  • JAVA学习-练习试用Java实现“最小覆盖子串”
  • 关于axios同步获取数据的问题
  • java-在ANTLR中,如何从java文件中提取类名和方法名0.1.8
  • 十大护眼灯钢琴灯品牌是智商税吗?十大钢琴灯品牌排行榜
  • 搜维尔科技:CyberGlove将实时捕捉运动信号和触觉反馈,将其重新定位到人形机器人进行驱动
  • 数据结构:堆的算法
  • python画图|3D直方图基础教程
  • C语言中的函数,实参,形参,递归
  • ICM20948 DMP代码详解(15)
  • NC 和为K的连续子数组
  • JS设计模式之装饰者模式:优雅的给对象增添“魔法”
  • 准备好了吗?JAVA从业AI开发的学习路线详解
  • 神经网络通俗理解学习笔记(1)
  • 有n个人,他们需要分配m元钱(m>n),每个人至少分到1元钱,且每个人分到的钱数必须是整数。请问有多少种分配方案?
  • 光耦——创新引擎 助推中国经济高质量发展
  • Go 中 RPC 的使用教程
  • 挖耳勺可以伸进耳朵多深?安全可视挖耳勺推荐!