我想将一堆DB从server1复制到server2,我想删除server2上与导入的DB冲突的任何DB,然后导入DB。
我正在使用它来导入:
mysql -u root -p[password] < a_bunch_of_dbs.sql
我使用phpMyAdmin执行多次导出,但它们完全无法使用。
问题是phpMyAdmin要么:
DROP DATABASE `database1`;
(导致错误#1008 - 无法删除数据库'database1';数据库不存在)
OR:
CREATE DATABASE `database1`;
(导致错误#1007 - 无法创建数据库'database1';数据库存在)
但不:
DROP DATABASE IF EXISTS `database`;
CREATE DATABASE IF NOT EXISTS `database1`;
(显然“IF NOT EXISTS”是多余的,但我喜欢那里的保证)
所以,为了解决这个问题,我需要一些命令行选项 OR 我需要找出phpmyadmin创建查询字符串的位置,并在DROP TABLE选项中添加“IF EXISTS”,这将解决一切。
有什么想法吗? 谢谢。
答案 0 :(得分:1)
利用MySQL Backup and Restore tools中的dbForge Studio for MySQL。打开“在DROP语句中包含IF EXISTS”选项,您将得到如下脚本:
--
-- Definition for database database1
--
DROP DATABASE IF EXISTS database1;
CREATE DATABASE database1
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
--
-- Set default database
--
USE database1;
--
-- Definition for table dept
--
CREATE TABLE dept (
id INT(11) NOT NULL AUTO_INCREMENT,
dept_name VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 2
AVG_ROW_LENGTH = 16384
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
支持命令行。