将 apache 和 mysql 设置移动到新服务器的最佳方法是什么?

将 apache 和 mysql 设置移动到新服务器的最佳方法是什么?

我刚刚在角落里设置了新的服务器,正在将服务从现有服务器移到新服务器上。我需要移交 mysql 和 apache。

移动所有内容的最佳方法是什么?只需复制所有 apache 目录根目录和站点(配置文件),我认为这是移动 apache 的最佳/唯一方法,但使用 mysql 时,我显然想保留所有密码,因此我应该只备份和恢复,还是可以让它们相互通信并告诉一个服务器只从另一个服务器吸取数据?

编辑:如果有什么不同的话,我可以承担让网站关闭 30 分钟左右的费用。

答案1

学习使用 mysqldump 不会有什么坏处,它还能帮助您备份数据库并将其传输到另一台服务器。密码和其他一些有用的东西都存储在名为 mysql 的数据库中。一个简单的例子:

mysqldump -u myuser -p mypassword mydatabase > dump.sql

然后只需将其提供给任何其他地方的 mysql 即可。

答案2

根据 Gleb 的说法以及 Google 为我找到的信息:

mysqldump -u user -p password thedb | ssh user@newserver mysql -u user -p password thedb

答案3

正如 Gleb 所说,使用 mysqldump 是最简单的方法(取决于数据库的流量。非常繁忙,mysqldump 不会发现某些更改)。

使用 apache,只需事先 rsync 目录,然后在准备切换时再次执行此操作。这样,在关键时刻,您可以最大限度地减少同步的大小。

您还需要事先进行此操作,以确保您的各种配置文件均已被正确获取和同步(并且您已获得所有配置文件)。

这不太复杂,但对于更大规模的实时迁移来说,这是一个很好的做法。

答案4

基于 Gleb 和 darkhelmet 的代码片段,我强烈建议使用 --opt 运行 mysqldump(取决于您的 MySQL 版本,它可能不是默认版本)以尽量减少传输量,以及对转储/导入过程进行一系列优化。

此外,正如您所说,您想要保留权限/用户表,您可能需要使用--all-databases 运行。

另一个选择是使用 MySQL 的复制功能(如您所说)来吸取数据。我猜您没有启用二进制日志记录(如果您启用了,这个过程会很轻松)。

如果使用 mysqldump,最重要的一点是确保使用正确的字符集运行所有内容(如果您有 utf8 数据,使用 latin1 可能会导致一些“有趣”的问题)。

相关内容