为了进行备份,我运行:
mysqldump --host=localhost --user=root --password=whatever --single-transaction --routines --triggers --log-error=error.txt mydatabase > out.sql是否可以用mysqldump反向(还原out.sql)进行同样的操作?
如果不可能,在mysqldump导出数据库out.sql的相同条件下,最推荐的导入数据库的命令是什么?
发布于 2021-08-25 20:53:25
您不使用米斯德重新加载数据库转储。使用mysql客户端重新加载。
例如,请看我的旧帖子是否有可能转储数据库的子集以复制查询?。我执行3个mysqldumps,然后使用mysql客户端重新加载转储。
对于这个问题中的mysqldump,它将是(简化的)
mysql -u user -p < out.sql如果转储文件有多个数据库,那么它将是
mysql -u user -p --one-database mydatabase < out.sql有关更多信息,请参见mysql选项-一-数据库。
你的命令
mysqldump --host=localhost --user=root --password=whatever --single-transaction --routines --triggers --log-error=error.txt mydatabase > out.sql不设置目标数据库。你必须告诉mysql客户端。
mysql --host=anotherhost --user=root --password=whatever -Dtargetdatabase < out.sql如果要将目标数据库放入转储中,请执行以下操作
mysqldump --host=localhost --user=root --password=whatever --single-transaction --routines --triggers --log-error=error.txt --databases mydatabase > out.sql然后,mysql客户端将被告知目标是什么。
mysql --host=anotherhost --user=root --password=whatever < out.sql因为这条线
USE mydatabase;将出现在第一个表生成和加载之前。
https://dba.stackexchange.com/questions/298559
复制相似问题