解决windows下mysql8修改my.ini设置datadir后无法启动问题
mysql8修改my.ini设置datadir后无法启动问题
mysql默认数据库文件在安装目录下。创建数据库的时候,并不能指定数据文件存放位置。这就很扯。它只能通过修改mysql.ini来更改数据文件存放目录,而且是一刀切的,没有办法做到数据文件和日志文件分开存放。假如服务器有多个盘,就不能利用磁盘不同IO的优势。但是,既然是服务器,通常会做阵列的吧,做了阵列,就无所谓哪个盘了。
我这次要说的,是修改mysql.ini后,mysql无法启动的问题。
我遇到的是2个原因:
- 一个是mysql.ini修改后字符编码被改变,导致mysql无法识别;
- 另一个是存放mysql数据文件的新路径没有足够权限。
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的安全属性。

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
MySQL中REPLACE INTO和INSERT INTO的区别分析
REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。2011-07-07
IDEA链接MySQL报错08001和连接成功后不显示表的问题及解决方法
这篇文章主要介绍了IDEA链接MySQL报错08001和连接成功后不显示表的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10
mysql error 1071: 创建唯一索引时字段长度限制的问题
这篇文章主要介绍了mysql error 1071: 创建唯一索引时字段长度限制的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-09-09
mysql报错:MySQL server version for the right syntax to use nea
这篇文章主要介绍了mysql报错:MySQL server version for the right syntax to use near type=InnoDB的解决方法,涉及MySQL语句的使用技巧,需要的朋友可以参考下2016-01-01


最新评论