Iam正在尝试更改mariadb中的数据目录,更改了ini文件中的数据目录路径,然后尝试重新启动服务,它无法启动!显示如下警告:
> Error 1067: The process terminated unexpectedly在MySQL中,数据目录的更改可以完美地工作。但我不知道为什么同样的方法不适用于mariadb。
只有默认路径有效...
发布于 2012-11-12 23:12:52
我应该提到一些很棒的系统内部工具(例如procmon),它们不仅在这种情况下非常有用,而且在许多其他情况下也非常有用。Windows错误日志是另一个非常非常有帮助的工具,如果你想看看it.Know你的工具
现在针对这种情况给出具体的建议--运行MariaDB服务的用户应该能够在datadir目录中创建文件。默认情况下,MariaDB使用网络服务,而MySQL使用本地系统(功能最强大的Windows用户)。
此更改使MariaDB更加安全(如果服务被黑客攻击,影响较小),但是您不应期望NetworkService具有对任何目录的读写访问权限,就像LocalSystem拥有的权限一样。
因此,要解决您的问题,您可以使该目录对NetworkService可写,或者将服务用户更改为对该目录具有读写访问权限的用户。
发布于 2016-11-04 04:17:43
最近有人问了这个问题,我想出了另一个答案,涉及符号链接。我觉得这个解决方案可能是最简单的,在my.ini或服务配置中不需要搞砸。
如何在安装后移动数据目录(例如磁盘C:\已满的情况下)。
不幸的是,这在MSI中是不可能做到的,所以需要手动完成。
你需要
重新启动服务停止服务并将数据目录移动到新位置(保留permissions)
以下是如何从脚本(需要以完全管理员权限运行,例如在提升的命令行上运行)执行此操作的示例。我使用robocopy复制文件,使用mklink创建目录链接,使用icacls设置链接的权限,使用net启动/停止服务
set SERVICE=MySQL
set SRCDIR="C:\Program Files\MariaDB 10.1\data"
set DESTDIR="D:\data"
net stop %SERVICE%
robocopy %SRCDIR% %DESTDIR% /MIR /SEC /MOVE
mklink /d %SRCDIR% %DESTDIR%
icacls %SRCDIR% /grant "NT AUTHORITY\NetworkService":F
net start %SERVICE%目前,即使您在MSI中选择了“删除数据”,这也不会在卸载时删除新的数据目录。
https://stackoverflow.com/questions/13136998
复制相似问题