Shell 脚本同步数据库

133 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

公司数据库文件太大, 备份下来18G, 创建了测试数据库 想将数据库备份文件还原到测试库中 通过source还原只还原了一半的表就断了 各位可能其它更加优秀的解决方案 下面是其中一个思路 通过Shell脚本同步没有同步成功的表


#!/bin/sh
for i in `mysql -uroot -p数据库密码 -Bse "select a.TABLE_NAME from
    (select table_name from information_schema.TABLES where TABLE_SCHEMA='测试库') as a
        left join (select table_name from information_schema.Tables where TABLE_SCHEMA='正式库') as b on a.TABLE_NAME=b.TABLE_NAME
where b.TABLE_NAME is null" | awk '{print $1}'`
do
    mysql -uroot -p数据库密码 -e "create table 测试库.$i select * from 正式库.$i"
done

注意:createtable这种复制数据库的方式不会复制主键,索引,外键\color{#FF0000}{注意: create table 这种复制数据库的方式不会复制主键,索引,外键}