将mysql模式(表,数据,所有内容)从一台服务器移动到另一台服务器最简单的方法是什么?MySQL - 将所有内容都移到新服务器上
是否有一种简单的方法将所有这些从一台运行mysql的服务器移动到另一台服务器上,这个服务器也已经运行了mysql?
将mysql模式(表,数据,所有内容)从一台服务器移动到另一台服务器最简单的方法是什么?MySQL - 将所有内容都移到新服务器上
是否有一种简单的方法将所有这些从一台运行mysql的服务器移动到另一台服务器上,这个服务器也已经运行了mysql?
转储数据库使用mysqldump
或如果您使用PHPMyAdmin然后导出结构和数据。
对于mysqldump
,你将需要控制台并使用下面的命令:在其他的服务器
mysqldump -u <user> -p -h <host> <dbname> > /path/to/dump.sql
然后:
mysql -u <user> -p <dbname> < /path/to/dump.sql
谢谢,我会google mysqldump – FozzieBeer 2011-06-08 18:18:56
已经为你添加了上面的语法 - 我现在要仔细检查一下,现在 – lethalMango 2011-06-08 18:20:55
谢谢,我有shell访问。 – FozzieBeer 2011-06-08 18:21:13
如果你从相同的架构移动对于相同的体系结构(x86-> x86,x86_64 - > x86_64),您可以将MySQL数据块从一台服务器rsync同步到另一台服务器。显然,当你的旧MySQL守护进程运行时,你不应该运行这个。
如果您的数据库是基于InnoDB的,那么您需要确保InnoDB日志文件已被清除,并且在复制文件之前已将其内容合并到磁盘。您可以通过将innodb_fast_shutdown
设置为0
(默认值为1
,这将而不是将日志刷新到磁盘)来执行此操作,这将导致日志文件在下次服务器关闭时被刷新。您可以通过登录到MySQL作为根做到这一点,并在MySQL外壳中,这样做:
SET GLOBAL innodb_fast_shutdown=0
或通过设置在你的my.cnf选项并重新启动服务器中的变化来拉,然后关闭以刷新日志。
做这样的事情:
#On old server (notice the ending slash and lack thereof, it's very important)
rsync -vrplogDtH /var/mysql [email protected]:/var/mysql/
#Get your my.cnf
scp /etc/my.cnf [email protected]:/etc/my.cnf
之后,你可能想运行mysql_upgrade [-p your_root_password]
以确保数据库都是最新的。
我会说在过去的(最近)(从一个旧服务器迁移到一个新服务器,都运行FreeBSD 8.x)中对我有用,但是YMMV取决于你以前的版本。
我这样做,有很多不同的小事情可以出错,尤其是如果有InnoDB表。我建议使用[Percona的xtrabackup](http://www.percona.com/docs/wiki/percona-xtrabackup:start)来完成这样的任务。 – Wrikken 2011-06-08 18:29:49
可悲的是,建筑是不同的,但我相信别人会赞赏这个建议。 – FozzieBeer 2011-06-08 18:30:53
@Wrikken你知道关于**的任何文档吗?使用这种方法可能会出错?我相信你(有很多小事可能会出错),但我想知道是否有一个确定的清单,说明为什么不这样做。 – bhamby 2011-06-08 18:38:13
如果您使用SSH密钥:
$ mysqldump --all-databases -u[user] -p[pwd] | ssh [host/IP] mysql -u[user] -p[pwd]
如果你不使用SSH密钥:
$ mysqldump --all-databases -u[user] -p[pwd] | ssh [email protected][host/IP] mysql -u[user] -p[pwd]
警告:您将要在此之后清除历史记录,以避免任何人找到你密码。
$ history -c
这对我来说就像一个魅力,将所有数据库真实地复制到我的新系统! – 2015-10-06 17:39:52
如何添加“user @”与使用ssh密钥相关?只是好奇。 – Equidamoid 2016-11-28 20:39:59
导出和导入? – 2011-06-08 18:17:09
这些内置命令?我是全新的。 – FozzieBeer 2011-06-08 18:18:15
如果您正在使用的服务器上有任何类型的控制面板,例如CPanel,Plesk等,那么您可能有权访问具有导出和导入功能的phpMyAdmin。 – 2011-06-08 18:21:44