我有一个名为intranet_production的本地mysql数据库,并在远程服务器(我有根服务器和MySQL的访问)有一个名为“extranet”的数据库。
在远程extranet数据库内有数十个表。 我只需要其中的5个左右,所以导入整个数据库似乎过多。
我正在寻找导入数据库的最佳方式,一旦导入工作,我将把它设置为每24小时一个cron作业。 目前,远程数据库可以覆盖它只有本地数据,因为我们没有写入任何东西到导入的表。
因此,鉴于本地数据库被称为intranet_production ,而远程数据库被称为extranet ,导入表table1 , table2和table3的最佳方式是什么?
我遇到了以下方法,但我相信必须在远程服务器上运行才能导出表。 我需要在本地服务器上运行cron作业。
mysqldump db-name foo | ssh [email protected] mysql bar
任何指针将不胜感激!
你可以在远程主机上使用mysqldump:
mysqldump -h database.server.com -u username -pPassword dbName tblName > local.file.sql
redirect到一个文件的instad,你可以pipe它到mysql:
mysqldump <args> | mysql -u uname -pPwd localDbName
您可以编写一个小脚本来执行以下操作:
ssh [email protected] "mysqldump db table1 table2 > /tmp/your_dump.sql" rsync [email protected]:/tmp/your_dump.sql /tmp/ mysql db < /tmp/your_dump.sql
或者,您可以在传输过程中为慢速链接压缩文件。