在mariadb中更改datadirectory
我正在尝试更改mariadb中的数据目录,在更改ini文件中的数据目录路径后,尝试重新启动服务,但无法启动!!!显示如下警告:在mariadb中更改datadirectory,mariadb,datadirectory,Mariadb,Datadirectory,我正在尝试更改mariadb中的数据目录,在更改ini文件中的数据目录路径后,尝试重新启动服务,但无法启动!!!显示如下警告: > Error 1067: The process terminated unexpectedly 在MySQL中,数据目录的更改非常有效。但我不知道为什么同样的方法不适用于mariadb 只有默认路径在工作…我应该提到非常好的系统内部工具(例如procmon),它不仅在这种情况下非常有用,而且在许多其他情况下也非常有用。Windows错误日志是第二个非常有用的
> Error 1067: The process terminated unexpectedly
在MySQL中,数据目录的更改非常有效。但我不知道为什么同样的方法不适用于mariadb
只有默认路径在工作…我应该提到非常好的系统内部工具(例如procmon),它不仅在这种情况下非常有用,而且在许多其他情况下也非常有用。Windows错误日志是第二个非常有用的工具,如果你想了解它的话。知道你的工具吗 现在我们来看一下本例的具体建议——运行MariaDB服务的用户应该能够在datadir目录中创建文件。默认情况下,MariaDB使用网络服务,而MySQL使用本地系统(最强大的Windows用户) 此更改使MariaDB更安全(如果服务被黑客攻击,影响更小),但您不应期望NetworkService像LocalSystem一样具有对任何目录的读写访问权限
因此,要解决您的问题,您需要为NetworkService使目录可写,或者将服务用户更改为对目录具有读写访问权限的用户 最近有人问这个问题,我想出了另一个答案,涉及符号链接。我觉得这个解决方案可能最简单,在my.ini或服务配置中不需要搞砸 安装后如何移动数据目录(例如磁盘C:\已满) 不幸的是,这是不可能从微星做到的,所以它需要手动完成 你需要
- 停止服务
- 将数据目录移动到新位置(保留权限)
- 创建从旧位置到新位置的符号链接
- 对符号链接授予服务帐户(NetworkService)完全权限
- 重新开始服务
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中选择了“删除数据”,也不会在卸载时删除新的datadir