我已经使用 Google Backup and Sync 一段时间了,但我决定如果可以使用它来进行正确的同步,以便我所有 Windows 机器上的数据基本相同,即都使用同一个 Gmail 帐户 Drive,那就太好了。
一切都运行良好。但今天我处理了 MySQL(实际上是 MariaDB MySQL 分支)使用的文件。
如果我修改一台机器(机器“A”)上的一些数据,则几个文件会发生变化:ibdata1、ib_logfile0 和 ib_logfile1。然后这些文件会镜像到云位置(即 GDrive 远程站点)。不幸的是,这 3 个文件(以及几个其他 MySQL 文件)不会替换机器 B 上的现有文件。
当我查看 GB&S 说“无法同步”机器 B 上的这些文件的原因时,它说“您没有权限同步这些文件”。
我认为这意味着 MySQL 服务由所有者 SYSTEM 运行。
我曾多次尝试了解 Windows 文件所有权和权限在现实中是如何运作的(它似乎与一些解释不同)。但是,是否有快速或不那么快速的方法来解决这个问题?
更多细节
查看机器 B 上现有的 ibdata1 文件(其中不允许传入替换来替换它),我发现实际上所有者对我来说是“M17A / Mike”,其中 M17A 是计算机的名称。
在文件的“安全”选项卡下,“组或用户名”下有四个条目:经过身份验证的用户、系统、管理员(M17A\Administrators)和用户(M17A\Users)。这四个条目都勾选了“完全控制”(我今天早些时候自己设置了它,试图解决这个问题)。
这与所有权/控制权无关,是否与 MySQL 服务在运行时可以控制这些文件有关? 这个问题还有什么解决办法吗?
PS 还有一个问题,即这些 MySQL 文件的大小:对一个数据库中的一条记录进行微小修改会触发 GB&S 上传超过 100 MB 的文件(上面提到的 3 个主要文件),然后下载它们以同步连接到同一帐户的其他计算机。但这是一个单独的、不太紧急的问题。
答案1
可执行googledrivesync.exe
文件以启动应用程序的用户身份运行。这通常是当前登录到计算机的用户。这意味着您的用户帐户需要对您希望 Google Backup and Sync 访问的任何文件/文件夹拥有完全控制权限。最佳做法是确保向您的用户帐户授予对 Google Drive 文件夹的完全控制权限,并且这些权限传播到所有子文件夹和文件。
这与所有权/控制权无关,是否与 MySQL 服务在运行时可以控制这些文件有关? 这个问题还有什么解决办法吗?
是的。这就是 Google Backup and Sync 无法修改文件的原因。这不是 Google Backup and Sync 的限制。这是操作系统中的限制(或者说是一种保护),可防止一个进程修改另一个进程中打开的文件。
对此没有解决办法。
不幸的是,您在使用所有云同步工具时都遇到了问题,而且在更大程度上,您遇到了文件共享方面的普遍问题。您正尝试使用它来同步正在使用的数据库文件。即使访问文件的应用程序设计为多个进程可以共享文件,它仍然无法与云同步工具很好地配合使用。您没有使用云同步文件夹上的实时数据。相反,一台机器修改文件并将更改上传到云,然后第二台机器识别更改并下载文件。存在延迟,并且不能保证两台机器始终具有可靠的互联网连接。没有机制来确保这些文件级别更改之间的完整性。两台机器永远不会访问“同一个”文件,而应用程序可能设计为与同一本地网络上的多个用户一起工作。
因此,使用 Google Backup and Sync 来同步那些不太可能被多台机器同时使用的文件。
在您的情况下,一种解决方法是设置一个手动过程,其中机器 A 将 MySQL 数据库备份到文件,然后允许该文件同步到机器 B。然后,机器 B 将该备份文件还原到机器 B 上的 MySQL 数据库。当您想要“刷新”机器 B 上的数据时,请执行此过程。
答案2
如果某些文件被标记为“隐藏”或“系统”或其他标志,备份和同步将拒绝同步它们。
不幸的是,某些软件的运行需要一些隐藏/系统文件。特别是当您尝试同步计算机上正在运行的应用程序的 AppData 文件夹时。
FWICT,备份和同步没有设置来更改是否同步隐藏文件。两年前有很多人抱怨他们想关闭此功能,而且,与其将其设为设置或开关,不如现在将其设为默认且唯一的行为。
因此,备份和同步可能不会同步您的文件。
答案3
对我有用的解决方案是从计算机中删除该文件并通过浏览器将其直接上传到谷歌驱动器,然后让其同步回计算机。