0

我有两个数据库。第一个数据库由站点使用。第二个用于测试站点的调试。

每天我必须多次更新测试站点数据库。

我没有 root 访问权限来删除和创建调试数据库。所以我必须删除所有忽略外键的表;从第一个数据库备份和恢复表到第二个。

所有表都是带有外键的 InnoDB。

4

1 回答 1

0
#!/bin/bash
USERNAME=root
PASSWORD=xxx
DBFROM=xxx
DBTO=xxx
HOST=localhost

MYSQL_OPTS="-u $USERNAME -p$PASSWORD -h $HOST"

TABLES=$(mysql $MYSQL_OPTS -BNe "show tables" $DBTO | tr '\n' ',' | sed -e 's/,$//' | awk '{print "SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS " $1 ";SET FOREIGN_KEY_CHECKS = 1;"}')
mysql $MYSQL_OPTS -BNe "$TABLES" $DBTO
mysqldump $MYSQL_OPTS $DBFROM | mysql $MYSQL_OPTS $DBTO
于 2012-11-30T10:28:30.193 回答