通过SSH检索mysql数据库

时间:2012-03-13 19:36:24

标签: mysql ssh

我需要将整个数据库从远程计算机上的mysql安装通过SSH复制到本地计算机mysql。

我知道SSH以及本地和远程MYSQL管理员用户和密码。

这是否足够信息,它是如何完成的?

5 个答案:

答案 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

请参阅http://dev.mysql.com/doc/refman/5.1/en/option-files.html

答案 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)

  1. ssh进入远程机器
  2. 备份数据库using mysqldump
  3. 将文件传输到本地计算机using scp
  4. 将数据库还原到本地mysql