我需要从远程计算机上的mysql安装通过SSH复制到我的本地计算机mysql的整个数据库。通过SSH检索mysql数据库
我知道SSH和本地和远程MYSQL管理用户和密码。
这是否足够的信息,它是如何完成的?
我需要从远程计算机上的mysql安装通过SSH复制到我的本地计算机mysql的整个数据库。通过SSH检索mysql数据库
我知道SSH和本地和远程MYSQL管理用户和密码。
这是否足够的信息,它是如何完成的?
要读这里:从http://www.cyberciti.biz/tips/howto-copy-mysql-database-remote-server.html修改
- 修改,因为我更喜欢使用.sql
作为扩展SQL文件:
通常你运行的mysqldump创建一个数据库复制和备份作为 如下:
$的mysqldump -u用户-p数据库名称> DB-名.sql
复制DB-name.out文件使用SFTP/SSH远程MySQL服务器:
$ SCP DB-名.sql [email protected]:/备份
恢复远程服务器数据库(超过ssh登录):
$ MySQL的用户-u -p DB-名<分贝-名.sql
基本上你将使用mysqldump
生成数据库的转储,将其复制到本地机器上,然后通过管道将内容转换成mysql
再生DB。
您可以自己复制数据库文件,而不是使用mysqldump
,但前提是您可以关闭远程计算机上的MySQL服务。
我认为你应该编辑这个答案来包含正确的答案,incase链接去死 – 2012-03-13 19:50:10
@MildFuzz好的。无论如何,这是谷歌搜索“将mysql数据库从一台服务器复制到另一台服务器”的第一个结果。 – 2012-03-13 20:36:27
我会推荐的Xtrabackup工具。它支持通过SSH进行热复制数据,并且具有优秀的文档。与使用mysqldump不同,这将复制MySQL实例的所有元素,包括用户权限,触发器,复制等等。
这将倾远程数据库通过pipes:
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
从远程服务器到本地计算机
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}
我唯一的问题是你有ssh在bzip2流上运行一个gzip文件......把'-C-c标志放到ssh可能会更好。 – 2015-02-23 18:56:25
您为什么要将密码作为命令行参数传递?任何可以在该机器上运行ps的人都可以看到密码。 – 2015-09-26 17:27:30
你知道如何在本地复制数据库吗? – 2012-03-13 19:38:40
我敢肯定我可以找出... – 2012-03-13 19:39:55