将MySQL数据库移动到新服务器

将MySQL数据库移动到新服务器,mysql,Mysql,将mysql模式(表、数据、所有内容)从一台服务器移动到另一台服务器的最简单方法是什么 有没有一种简单的方法可以将所有这些从一台运行mysql的服务器移动到另一台已经运行mysql的服务器?使用mysqldump或使用PHPMyAdmin转储数据库,然后导出结构和数据 对于mysqldump,您需要控制台并使用以下命令: mysqldump-u-p-h>/path/to/dump.sql 然后在另一台服务器中: mysql-u-px86,x86\u 64->x86\u 64),只需将mysql数

将mysql模式(表、数据、所有内容)从一台服务器移动到另一台服务器的最简单方法是什么


有没有一种简单的方法可以将所有这些从一台运行mysql的服务器移动到另一台已经运行mysql的服务器?

使用
mysqldump
或使用PHPMyAdmin转储数据库,然后导出结构和数据

对于
mysqldump
,您需要控制台并使用以下命令:

mysqldump-u-p-h>/path/to/dump.sql

然后在另一台服务器中:


mysql-u-p

如果要从同一个体系结构移动到同一个体系结构(x86->x86,x86\u 64->x86\u 64),只需将mysql数据目录从一台服务器同步到另一台服务器即可。显然,您不应该在旧的MySQL守护进程运行时运行它

如果数据库基于InnoDB,则在复制文件之前,您需要确保已清除InnoDB日志文件并将其内容合并到磁盘。您可以通过将
innodb\u fast\u shutdown
设置为
0
(默认设置为
1
,这将不会将日志刷新到磁盘),这将导致在下次服务器关闭时刷新日志文件。您可以以root用户身份登录MySQL,在MySQL shell中执行以下操作:

设置全局innodb\u fast\u shutdown=0

或者在my.cnf中设置该选项并重新启动服务器以获取更改,然后关闭以刷新日志

做一些类似于:

#On old server (notice the ending slash and lack thereof, it's very important)
rsync -vrplogDtH /var/mysql root@other.server:/var/mysql/
#Get your my.cnf
scp /etc/my.cnf root@other.server:/etc/my.cnf
之后,您可能需要运行
mysql\u升级[-p您的\u root\u密码]
以确保数据库是最新的


我要说的是,它在(最近的)过去(从一个旧服务器移动到一个新服务器,都运行FreeBSD 8.x),但YMMV取决于您过去的版本数。

如果您使用的是SSH密钥:

$ mysqldump --all-databases -u[user] -p[pwd] | ssh [host/IP] mysql -u[user] -p[pwd]
$ mysqldump --all-databases -u[user] -p[pwd] | ssh user@[host/IP] mysql -u[user] -p[pwd]
如果未使用SSH密钥:

$ mysqldump --all-databases -u[user] -p[pwd] | ssh [host/IP] mysql -u[user] -p[pwd]
$ mysqldump --all-databases -u[user] -p[pwd] | ssh user@[host/IP] mysql -u[user] -p[pwd]
警告:在此之后,您需要清除历史记录,以避免任何人找到您的密码

$ history -c

这些是内置命令吗?我对此一无所知。如果您使用的服务器上有任何类型的控制面板,如CPanel、Plesk等,那么您很可能可以访问具有导出和导入功能的phpMyAdmin。@Kevin Nelson,谢谢,我们只有shell访问为您添加了上述语法-我将再次检查,现在这个网站应该帮助您一步一步地完成:)这只是半个答案。导入部分在哪里?我用这个方法移动了数据库,事件也消失了。在为时已晚之前,请将此便条留在此处以帮助他人。如果您这样做,可能会出现很多小问题,特别是如果有InnoDB表的话。我建议用它来完成这样的任务。遗憾的是,它的体系结构不同,尽管我相信其他人会喜欢这个建议。@Wrikken你知道关于*使用这种方法会出现什么问题的文档吗?我相信你(有很多小事情可能会出错),但我想知道是否有一个关于为什么不这样做的最终列表。遗憾的是,我不知道有一个最终列表,但innodb日志尚未播放是一个大问题。例如,afaik percona的解决方案只是脚本,因此,您可以深入了解他们期望和防止的问题类型。@Wrikken如果主要问题是InnoDB日志没有被播放出来,那么您可以在关机时将其刷新到磁盘。我更新了答案,包括你如何做到这一点。这对我来说很有吸引力,将所有数据库快速复制到我的新系统中!!添加“user@”与ssh密钥的使用有何关联?只是好奇。