mysqldump拷贝(复制)数据库
我们都知道,通过mysqldump
命令可以将数据库导出,该命令还包含了很多选项,比如忽略表、导出所有(指定)数据库、添加drop语句等,至于具体使用方法,大家可以自行百度。
现在,需要把数据库db1
中所有表通过python脚本的方式全部导入到数据库db2
中,具体命令如下:
# 先导出,不包含 USE db1 类似的语句,下面USER和PASS请自行替换
subprocess.call('mysqldump -h localhost -uUSER -pPASS db1 --no-create-db > /home/db1.sql', shell=True)
# 导入到 db2 中
subprocess.call('mysql -h localhost -uUSER -pPASS db2 < /home/db1.sql', shell=True)
命令一中,PASS
后面直接带上数据库名,避免导出的sql文件中包含USE db1
这样的语句,否则导入的时候会自动切换成db1
,而不是我们希望的db2
。同理,命令二中PASS
后面直接带上db2
,表示登录后直接使用db2
,不需要使用USE db2
来指定数据库了,所以数据能够成功导入。