我刚刚获得了新的服务器设置并在角落里,并且正在将服务从我现有的盒子转移到它的过程中。我需要移动 mysql 和 apache。
什么是移动一切的最佳方式?只需复制所有 apache 目录根目录和站点(配置文件),我认为这是让 apache 结束的最佳/唯一方法,但是使用 mysql 我显然想保留所有密码,所以我应该只备份并恢复或者我可以让他们互相交谈并告诉一台服务器从另一台服务器中吸取数据?
编辑:我有能力将网站关闭 30 分钟左右,如果这有所作为的话。
我刚刚获得了新的服务器设置并在角落里,并且正在将服务从我现有的盒子转移到它的过程中。我需要移动 mysql 和 apache。
什么是移动一切的最佳方式?只需复制所有 apache 目录根目录和站点(配置文件),我认为这是让 apache 结束的最佳/唯一方法,但是使用 mysql 我显然想保留所有密码,所以我应该只备份并恢复或者我可以让他们互相交谈并告诉一台服务器从另一台服务器中吸取数据?
编辑:我有能力将网站关闭 30 分钟左右,如果这有所作为的话。
学习使用 mysqldump 不会有什么坏处,它将帮助您备份数据库并将它们也转移到另一台服务器。密码和其他一些有用的东西存在于名为 mysql 的数据库中。一个简单的例子:
然后只需将其提供给其他任何地方的mysql。
基于 Gleb 所说的以及 Google 为我找到的内容:
正如 Gleb 所说,使用 mysqldump 是最简单的方法(取决于数据库上的流量。非常繁重,mysqldump 不会接受一些更改)。
使用 apache,只需预先同步目录,然后在准备好切换时再次执行。这样,您可以在关键时间最小化同步的大小。
您还需要事先执行此操作,以确保您的各种配置文件被正确拾取和同步(并且您得到了所有文件)。
这并不太复杂,但对于较大的实时迁移来说,这是一个很好的做法。
基于 Gleb 和 darkhelmet 的片段,我强烈建议使用 --opt 运行 mysqldump (取决于您的 MySQL 版本,它可能不是默认值)以最小化传输量,以及对转储的一系列优化/进口流程。
此外,正如您所说的要保留权限/用户表,您可能希望使用 --all-databases 运行。
您拥有的另一个选择是使用 MySQL 的复制来(如您所说)吸取数据。我猜你没有启用二进制日志记录(如果你这样做了,这个过程会很轻松)。
如果使用 mysqldump,最重要的一点是确保使用正确的字符集运行所有内容(如果您有 utf8 数据,则使用 latin1 可能会导致一些“有趣”的问题)。