我有两台具备root权限的专用服务器,都运行Linux系统。我想将Server1上的数据库导入到Server2上。我已经在Server2上创建了一个空数据库。
我想知道怎样使用Linux命令直接导入数据库?是否有这样的功能?我能使用mysqldump命令吗?我想避免先在Server1上备份数据库,然后将备份文件移动到Server2上,最后再将备份文件导入。
有没有可通过某个命令直接进行导入的方法?
谢谢!
mysqldump --all-databases | mysql -h yourserver.com
使用ssh连接到其他服务器
mysqldump --all-databases | ssh user@yourserver.com mysql
使用 mysqldump --all-databases 命令传输所有数据库,或者指定数据库名称。请参考 mysqldump 文档 了解更多选项。
您也可以使用 MySQL 的 "Replication" 功能,但这需要更长的设置时间,而且相对棘手。对于单个迁移可能不值得花费那么多时间和麻烦。
停止第一台服务器上的mysqld,将数据目录(通常为/var/lib/mysql)从服务器1复制到服务器2,然后在第二台服务器上启动mysqld,此时它将与第一台服务器完全相同。
如果您可以在复制数据文件时停止服务器,就不必使用导入/导出工具。特别是如果您可以在复制文件之前压缩文件,这将是最快的方法。
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”
通过压缩的SSH隧道转储MySQL数据库,并将其用作mysql的输入