enl*_*loz 7 mysql database ssh copy
让我们说我有database1和database2.
database1 - 包含数据
database2 - 是空的.
我想所有的数据从复制database1到database2通过SSH -复制database1.
我应该使用什么命令?
我试过了
mysqldump -u user -p database1 > database1.sql
Enter password: mysqldump: Got error: 1045: Access denied for user 'user'@'localhost' (using password: NO) when trying to connect
Run Code Online (Sandbox Code Playgroud)
这会将数据库从S1复制到S2
mysqldump --opt <database> | gzip -c | ssh user@wherever 'cat > /tmp/yourfile.sql.gz'
Run Code Online (Sandbox Code Playgroud)
解压缩文件
gunzip /tmp/yourfile.sql.gz
Run Code Online (Sandbox Code Playgroud)
接下来你必须在S2上导入
mysql -h<host> -u<user> -p<password> < /tmp/yourfile.sql
Run Code Online (Sandbox Code Playgroud)
请享用
仅需一个命令即可通过SSH复制MySQL数据库:
mysqldump -u <local-user> -p <local-db> | gzip | ssh user@hostname \
"gunzip | mysql -u <remote-user> -p<password> <remote-db>"
Run Code Online (Sandbox Code Playgroud)
请注意,您必须首先创建远程数据库。
更高级的版本:
mysqldump -u <local-user> -p <local-db> | xz | pv -W | ssh user@hostname \
"tee remote-dump.sql.xz | unxz | mysql -u <remote-user> -p<password> <remote-db>"
Run Code Online (Sandbox Code Playgroud)
进阶版本:
使用xz/ 具有更好的压缩效果unxz(尽管请注意,压缩速度不会成为瓶颈-如果xz在100%CPU下,则它可能已成为瓶颈,并且您可能会更好gzip)
使用显示进度指示器 pv
保存转储的副本,使用 tee
我唯一未解决的问题是如何避免在远程命令中指定密码。能够在命令行上以交互方式输入此密码真是太好了–如果有人知道怎么做,请输入提示音。
| 归档时间: |
|
| 查看次数: |
11364 次 |
| 最近记录: |