引言
Mysql在多次反复安装卸载在安装的过程中,可能会由于上次安装的遗留文件或系
统配置的影响,导致再次安装的Mysql服务无法启动。使用Mysql很久了,今天遇到这
个问题,也是很棘手,查阅后有一些方案和心得分享一下
解决方案
1、服务启动中止或是启动不了,第一个先想到的是端口冲突
,尤其是在当你的电脑上有不只一个Mysql服务的时候,先去检查是否是别的Mysql进程没有关闭导致端口占用,如果没有我们继续
2、如果你在卸载程序
中已经卸载相关其他Mysql服务,但是现在安装的Mysql服务依然启动不了,那么要考虑一下,可能是卸载程序并没有删除一些配置文件或者注册表文件,尤其是当你的Mysql是Mysql-installer版本的时候,给出两个参考的文件目录可能存在这一些残留的配置文件:
C:\Program Files\MySQL
C:\ProgramData\MySQL --这个是一个隐藏文件,请先勾选windows的查看隐藏
还没有完,进入window的计算机管理中查看服务和应用程序
,因为多次的安装Mysql,会注册多个MySQL服务,查看服务中时候是否有多个Mysql服务,类似 Mysql57、Mysql57_1
,若有可以两种方式彻底排除影响:
1、点击属性,在属性中禁用此服务
2、管理员运行cmd,输入命令 > mysqld --remove Mysql57 [这是你对应的服务名称]
3、如果以上两种情况处理后,还是不能启动当前Mysql,那么很有可能是你当前Mysql的问题了,出现的问题有两种可能:
1、服务根目录下没有my.ini文件或者my-default.ini类似ini文件
2、Mysql未初始化,查看根目录下,是否有data目录,若data目录下为空或者没有data
目录说明未初始化
3、当然还有第三种,就是上面两种都发生了
若发生1情况,两种解决方案:
1、自己建一个my.ini文件,写入配置,如下:
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录 [注意这里写自己的路径]
basedir=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-winx64
# 设置mysql数据库的数据的存放目录 [注意这里写自己的路径]
datadir=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2、复制my.ini文件到根目录,并修改 basedir 和 datadir
1、自己建一个my.ini文件,写入配置,如下:
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录 [注意这里写自己的路径]
basedir=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-winx64
# 设置mysql数据库的数据的存放目录 [注意这里写自己的路径]
datadir=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2、复制my.ini文件到根目录,并修改 basedir 和 datadir
若发生2情况,解决方案如下,注意>
表示的是输入:
管理员身份运行cmd,cd到对应Mysql服务的根目录
#初始化不带密码参数的用户
> mysqld --initialize-insecure --user=mysql
# 其中Mysql是你的服务名称,可自定义
# =之后的路径是你的my.ini路径
# 这句命令是在为你的Mysql服务注册到window系统中去
> mysqld --install Mysql --defaults-file=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-
> winx64\my.ini
管理员身份运行cmd,cd到对应Mysql服务的根目录
#初始化不带密码参数的用户
> mysqld --initialize-insecure --user=mysql
# 其中Mysql是你的服务名称,可自定义
# =之后的路径是你的my.ini路径
# 这句命令是在为你的Mysql服务注册到window系统中去
> mysqld --install Mysql --defaults-file=D:\Nginx+PHP+Mysql\mysql\mysql-5.7.23-
> winx64\my.ini
基本上,解决了以上问题,服务就可以启动了,> net start Mysql
,即可以了