我正在创建一个要在 Mac OS X 终端 (bash) 中使用的代码片段,这将允许我一步执行以下操作:
- 通过 ssh 登录我的服务器
- 为我的 Wordpress 数据库创建 mysqldump 备份
- 将备份文件下载到本地硬盘
- 替换我的本地 Mamp Pro mysql 数据库
这个想法是创建我当前在线网站的本地版本来进行开发。到目前为止我有这个:
ssh server 'mysqldump -u root -p'mypassword' --single-transaction wordpress_database > wordpress_database.sql' && scp me@myserver.com:~/wordpress_database.sql /Users/me/Downloads/wordpress_database.sql && /Applications/MAMP/Library/bin/mysql -u root -p'mylocalpassword' wordpress_database < /Users/me/Downloads/wordpress_database.sql
显然我对此有点陌生,而且我认为其中有很多不必要的冗余。然而,它确实有效。哦,ssh 命令 ssh 服务器
正在工作,因为我在本地 .ssh 文件中创建了一个别名来执行该操作。
以下是我需要帮助的内容:
- 这个可以缩短吗?变得更简单了吗?
- 我这样做的方式好吗?有更好的办法吗?
- 如何添加 gzip 压缩?
我很感谢对此的任何指导。谢谢。
最佳答案
您可以一步将其从服务器转储到本地数据库(带有 gzip 压缩提示):
ssh server "mysqldump -u root -p'mypassword' --single-transaction wordpress_database | gzip -c" | gunzip -c | /Applications/MAMP/Library/bin/mysql -u root -p'mylocalpassword' wordpress_database
双引号是这里的关键,因为你想要 gzip
在服务器上执行并且 gunzip
在本地执行。
我还将我的 mysql 密码存储在 ~/.my.cnf (和 chmod 600
该文件)中,这样我就不必在命令行上提供它们(系统上的其他用户可以看到它们) ):
[mysql]
password=whatever
[mysqldump]
password=whatever
关于mysql - 从服务器创建mysql备份,使用scp下载到本地并替换mamp数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3135280/