Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql8修改my.ini设置datadir后无法启动

解决windows下mysql8修改my.ini设置datadir后无法启动问题

作者:左直拳

在修改MySQL的my.ini文件以更改数据目录后,可能会遇到无法启动的问题,这通常是因为字符编码被改变或新路径权限不足,正确的做法是备份my.ini文件,确保使用ANSI字符编码修改datadir,并确保新路径有足够的权限,特别是SYSTEM或NETWORKSERVICE权限

mysql8修改my.ini设置datadir后无法启动问题

mysql默认数据库文件在安装目录下。创建数据库的时候,并不能指定数据文件存放位置。这就很扯。它只能通过修改mysql.ini来更改数据文件存放目录,而且是一刀切的,没有办法做到数据文件和日志文件分开存放。假如服务器有多个盘,就不能利用磁盘不同IO的优势。但是,既然是服务器,通常会做阵列的吧,做了阵列,就无所谓哪个盘了。

我这次要说的,是修改mysql.ini后,mysql无法启动的问题。

我遇到的是2个原因:

1、字符编码问题

一般来说,mysql.ini位于mysql安装目录下。但其实并不准确,像我的操作系统是win10,mysql默认安装在c:\program files,但mysql.ini位于C:\ProgramData\MySQL\MySQL Server 8.0

这是一个隐藏的文件夹。

如果要改变数据文件的存储路径,就要修改mysql.ini。mysql.init默认字符编码是ANSI,保存后,就有可能会改变其字符编码为UTF-8,导致mysql无法识别,从而无法启动mysql。

正确做法是:

1)首先备份一个mysql.ini。切记!!!

2)用记事本打开mysql.ini,修改mysql.ini里的datadir,如

# Path to the database root
datadir=e:\mysql\Data

3)mysql.ini默认字符编码是ANSI。所以修改后,用记事本另存为,记得选字符编码为ANSI。

2、新路径权限问题

如上所述,我将datadir修改成新的路径e:\mysql\Data,同时将C:\ProgramData\MySQL\MySQL Server 8.0\Data拷贝到新路径。但要注意,这个文件夹必须要有足够的权限,mysql才能使用。其中,关键的权限是SYSTEM或NETWORK SERVICE要有全部权限。

也有可能是network service。这个可能是跟安装时的环境有关。最好是看一下原先数据存放点C:\ProgramData\MySQL\MySQL Server 8.0\Data的安全属性。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文