我需要将整个数据库从远程计算机上的mysql安装通过SSH复制到本地计算机mysql。
我知道SSH以及本地和远程MYSQL管理员用户和密码。
这是否足够信息,它是如何完成的?
答案 0 :(得分:9)
从远程服务器到本地计算机
ssh {ssh.user}@{remote_host} \
'mysqldump -u {remote_dbuser} --password={remote_dbpassword}
{remote_dbname} | bzip2 -c' \ | bunzip2 -dc | mysql -u {local_dbuser}
--password={local_dbpassword} -D {local_dbname}
答案 1 :(得分:5)
这将通过pipes
将远程数据库转储到本地MySQL中 ssh mysql-server "mysqldump --all-databases --quote-names --opt --hex-blob --add-drop-database" | mysql
您应该关注mysql.users
此外,为避免在本地和远程主机上键入mysqldump和mysql的用户和密码,您可以创建文件~/.my.cnf
:
[mysql]
user = dba
password = foobar
[mysqldump]
user = dba
password = foobar
答案 2 :(得分:4)
请尝试阅读:
从http://www.cyberciti.biz/tips/howto-copy-mysql-database-remote-server.html修改 - 修改,因为我更喜欢使用.sql
作为SQL文件的扩展名:
通常运行mysqldump来创建数据库副本和备份 如下:
$ mysqldump -u user -p db-name> DB-名.sql
使用sftp / ssh将db-name.out文件复制到远程MySQL服务器:
$ scp db-name.sql user@remote.box.com:/ backup
在远程服务器上恢复数据库(通过ssh登录):
$ mysql -u user -p db-name< DB-名.sql
基本上,您将使用mysqldump
生成数据库转储,将其复制到本地计算机,然后将内容通过管道传输到mysql
以重新生成数据库。
您可以自行复制数据库文件,而不是使用mysqldump
,但前提是您可以关闭远程计算机上的MySQL服务。
答案 3 :(得分:0)
我建议Xtrabackup使用Percona工具。它支持通过SSH热复制数据,并具有优秀的文档。与使用mysqldump不同,这将复制MySQL实例的所有元素,包括用户权限,触发器,复制等......
答案 4 :(得分:0)