如何转储远程mysql数据库并使用bash脚本在本地导入它

时间:2015-04-10 11:15:13

标签: mysql bash function ssh remote-server

尝试使用该shell脚本转储远程wordpress数据库:

db_name=$(php -r 'include("public_html/local-config.php");echo DB_NAME;');
db_user=$(php -r 'include("public_html/local-config.php");echo DB_USER;');
db_password=$(php -r 'include("public_html/local-config.php");echo DB_PASSWORD;');
db_host=$(php -r 'include("public_html/local-config.php");echo DB_HOST;');
mysqldump --user="$db_user" --password="$db_password" "$db_name";

要在本地进行转储,我在本地终端(主机在.ssh / config中)运行:

ssh host 'bash -s' < thatscript.sh > dump.sql

然后我会mysql localdb < dump.sql在本地导入它。

现在我尝试将ssh和本地mysql部分放入脚本中,这样我就可以启动脚本并完成所有操作。

我尝试将原始脚本放入函数中,然后使用

调用它
mysql localdb < $(ssh host 'bash -s' < myDumpFunction)

但是它假设一个名为myDumpFunction的文件,显然不起作用。我如何正确地调用该函数?

关于如何为本地开发系统实现单行数据库同步的任何其他想法也受到赞赏。

1 个答案:

答案 0 :(得分:0)

如何编写另一个.sh文件并使用ssh连接启动它?别忘了改变chmod。脚本应该是可执行的。

示例:

ssh username@ipaddr(remotePc) start.sh