我正在考虑转换到新的托管服务提供商,我想将我的生产网站的数据库转移到新的托管服务提供商。我正在使用mysql。我需要采取哪些步骤来转移我的数据库?
感谢任何帮助。
谢谢,
布赖恩
答案 0 :(得分:1)
假设一个相对简单的应用程序(PHP,类似的东西),一个应用程序服务器,一个数据库服务器,然后简单地说:
在新主机上,在旧主机数据库上使用的数据库上创建必要的帐户。
复制应用代码。
在旧主机上“锁定”您的应用,这样就不会发生任何数据更改(如果可行的话)。
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html是你的朋友。转储架构和数据,并将其捕获到文件中。这是我用来转储具有示例登录名的数据库exampledb的命令:
mysqldump --add-drop-table -u example -p exampledb > output.sql
(--add-drop-table
可以让您在以后需要时更轻松地重新运行脚本。但它会创建一个会破坏您的数据库的脚本,因此请小心运行它。)
现在将output.sql文件复制(可能使用scp
)到新主机。
在新主机上,运行mysql以使用旧主机中的架构和数据构建数据库。我使用像这样的命令,假设用户为“example”,数据库名称为“exampledb”:
mysql -u example -p exampledb < output.sql
(小心只在新主机上运行它。它会消除你的数据库。)
好消息是,你有一台新机器的空白。你可以在不破坏任何东西的情况下继续尝试不同的东西。
在新主机上开启应用。测试。如果已经有一段时间了,您可能需要进行更改以使您的代码更新为该语言版本。 (我的确是这样做的。但也许你最好还是保持代码最新。)
关闭旧主机上的应用程序。
将DNS /路由器/指向新主机。
我错过了什么? (刚刚通过这个将我愚蠢的网站移到新机器上。)
答案 1 :(得分:0)
这很简单,特别是对于一个数据库而言?
mysqldump
后跟mysqlimport
。
生成.sql文件就是您所需要的,因为它将包含所有表信息,例如CREATE INDEXES
,当您运行所有插入时,将添加索引。
如果您在使用命令行时遇到困难,我建议您使用Navicat Lite吗?它是免费的,是我在市场上见过的最好的GUI。