问题描述
本机系统已经安装了mysql,为了部署mysql主从,复制已安装mysql文件夹,修改端口 + 基础目录 + 数据目录,然后安装服务,启动服务时报错
操作描述
- 复制之前 MySQL 目录
- 修改my.ini
1) 修改端口
2) 修改基础目录地址
3) 修改数据文件地址 - 安装服务
cd C:\Program Files\MySQL\mysql-sl
mysqld install xiaozhengmysql --defaults-file="C:\Program Files\MySQL\mysql-sl\my.ini"
xiaozhengmysql是服务名称
【注意】1、若安装denied,则有可能是权限问题,需要用管理员权限打开cmd,看下图
4. 启动服务和停止服务
在安装服务时,会自启动,发现启动失败,但是看不到任何错误信息,因此只能,手动停止mysql服务,然后启动mysql服务
net stop xiaozhengmysql
net start xiaozhengmysql
解决方案(网上常用两种)
- 第一种解决方法:修改my.ini,将innodb修改为:MYISAM
default-storage-engine=MYISAM
试过不行
- 第二种解决方法:检查数据data目录,发现缺少user.frm、user.MYD、user.MYI三个文件
- 第三种解决方法,也就是个人的解决方法
每次在修改端口的时候发现,
原因是:mysql我安装在C:\Program Files,同样复制到当前文件夹,一直报权限不够
检查了一下,也没有去分配文件夹权限。
只能尝试将文件夹复制到D盘,修改my.ini内容将没有提示权限不足的错误了,重新安装,发现可以了 - 第四种解决方法,再次安装mysql软件,选择不一样的端口 + 目录即可(未测试过)
总结
一般来说,创建文件夹最好不要带空格与特殊字符,特别是空格,有可能会导致某种报错,这种错误是非常难以排查的。
在寻找解决方法中,也尝试去掉空格与特殊字符,发现还是不行
2. 考虑权限,如果你执行某些配置总是弹出授权等等,可能是权限影响了,要一步步排除这些干扰才能解决问题
删除服务命令
sc delete 服务名称
例如:
sc delete xiaozhengmysql