我正在和另一个人合作开发一个 Wordpress 网站。目前,Wordpress 文件位于一个共享的 Dropbox 文件夹中,这样我们俩就可以看到我们需要处理的所有文件。但是,Wordpress 数据库不在那里,我已经在我的电脑上创建了它们,但另一个人看不到它们。
是否有一种标准、简单的方法可以让 Wordpress 将其数据库文件保存在存储所有其他文件的同一目录中?
答案1
正如我在评论中所说,你真的不想这样做,而且我怀疑这样做效果会不会很好。你真的应该考虑在专用服务器/VPS 上,或者在你或你的合作者的开发机器上托管一个可通过互联网访问的 MySQL 服务器。如果你这样做,你至少需要确保你们中只有一个人一次加载数据库;我不知道 Dropbox 能多好地处理将大量并发更新同步到数据库,但我的直觉告诉我,这最终会以灾难告终。
也就是说,您可以按照以下方式告诉 MySQL 将数据库文件保存在任意目录中,在本例中是您的 Dropbox 共享目录。
您需要找到 MySQL 的配置文件。my.cnf
在大多数平台上,my.ini
Windows 上都会调用此文件。要找到该文件,请参阅答案在这里。
找到配置文件后,打开它并找到以 开头的行datadir
。这就是您的数据库现在所在的位置。导航到该目录并将其内容复制到 Dropbox 上的新文件夹中。现在,将指令更改datadir
为引用 Dropbox 的路径,然后重新启动 MySQL。
答案2
您不想将实时数据库文件存储在 Wordpress 中,因为恢复它们会带来各种麻烦,并提供虚假的安全级别。(原因有很多,包括 MySQL 不符合 ACID 标准,可能的性能受到影响,并且因为在进行此备份时数据库未关闭,即使您可以获取数据,恢复也会更加困难)
从可靠性、稳定性和可恢复性的角度来看,您最好使用 cronjob 备份数据库,定期将数据库转储到您的 Dropbox 文件夹。这就是 MYSQLDUMP 等程序的用途(它们是 MySQL 软件包的一部分 - 而不是售后附加组件)您可以使用 CRONTAB 安排这些转储。
为了共享数据库访问权限,正确的做法是将数据库设置在两个开发人员可以同时连接的端口上。数据库的整个目的是从代码中抽象出存储 - 以便多个人可以同时对数据进行操作。
答案3
我不会建议你在需要处理数据库时将数据库视为文件是不好的。假设你知道自己在做什么,只需找到数据目录钥匙 ([mysqld]在 my.cnf 或 my.ini(用于mysqld --help --verbose
获取位置信息)中添加 MySQL 部分,并将其值更改为 Wordpress 目录。重新启动 MySQL 服务器。完成!您根本不需要触碰 Wordpress 配置。
答案4
您可能想寻找替代解决方案。
首先,dropbox 是一种不错的文件共享方式,但最多只能供一个人在多个位置共享。我甚至不知道从哪里开始说起,当你尝试使用 dropbox 作为源代码管理系统时,你会遇到哪些冲突。看看 git 或 svn。svn 在 Windows 上与 tortoise 配合使用非常方便,而且有些地方提供免费的存储库。
至于 mysql,当人们说你不想这样做时,请相信他们。你会丢弃数据,并很快将其置于无法操作的状态。由于你使用的是 dropbox,因此恢复到可操作状态将极其困难或不可能,这取决于你备份的准确性和时间安排。
您要将网站托管在某个地方,不是吗?他们没有提供 mysql db 供您使用吗?如果是,您应该检查是否可以公开端口以进行远程管理,或者仅通过主机 phpmySQL 接口进行管理。除非您的结构发生变化,否则您可能不需要深入了解数据库。您说您的机器上有数据库,但您的朋友无法访问它,也许您可以为他打开一个端口?
最后,即使您确实同步了文件而没有破坏数据,他仍然必须在他那边设置一个 MySQL 实例来处理数据文件。MySQL 由两部分组成,软件和数据,您不能直接将数据转储到 dropbox(或任何共享方法)中,然后让其他有权访问数据文件的人可以使用它。如果我错了,他确实配置了 mysql 服务器,为什么他不能直接安装自己的一组表?