我有一个大型数据库dump.sql文件,我从linux中的命令行导入. .sql转储创建名为“database_name”的数据库.我想从这个.sql文件导入数据库但我想强制它到一个具有不同名称的数据库,因为脚本当前覆盖“database_name”和“database_name”已经存在并且具有我无法覆盖的数据.
是.sql文件中查找和替换的最佳选择?由于文件是50mb,最好的方法是什么.我不能简单地在那个shiz上使用file_get_contents()吗?我可以吗?
下面是我必须在.sql文件中替换的行:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database_name` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `database_name`;
最佳答案
使用mysqldump转储数据库时,请使用选项–no-create-db.这将在您的转储文件中隐藏CREATE DATABASE语句.
然后使用恢复数据库
mysql -h< host> -u< user> -p< databaseName> < dump.sql
通过这种方式,您可以在任何您喜欢的数据库中恢复数据(但该数据库必须存在!)