Bootstrap

MySQL启动失败

MySQL启动失败排查思路,涉及【服务没有报告任何错误】、【服务名无效】、【服务正在启动或停止中,请稍等片刻后再试一次】情况。

目录

一、my.ini配置文件问题

二、data文件初始化问题

三、MySQL服务问题

①MySQL服务名错误

②MySQL服务没有安装

四、MySQL进程问题



一、my.ini配置文件问题

1、检查MySQL安装目录是否有my.ini文件

如果MySQL安装目录下找不到,可能是被隐藏了或者在ProgramData文件下,在文件路径输入%ProgramData%

2、如果有my.ini则检查里面的端口、路径等内容对不对,如果没有则自己建一个,以下是我本地的my.ini文件,仅供参考。

# 设置mysql的安装目录



[client]
# 不推荐使用默认端口3306
port=3308
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 不推荐使用默认端口3306
port=3308
# 绝对路径依据实际情况修改
basedir="D:/APPMySQL8/mysql-8.0.31-winx64/"
datadir="D:/APPMySQL8/mysql-8.0.31-winx64/data/"
#tmpdir="D:/APPMySQL8/mysql-8.0.31-winx64/data/temp/"

# General and Slow logging.
log-output=FILE
general-log=0
general_log_file="seeyon-mysql-8.0-general.log"
slow-query-log=1
slow_query_log_file="seeyon-mysql-8.0-slow.log"
long_query_time=10
# Error Logging.
log-error="seeyon-mysql-8.0.err"

# default_authentication_plugin=caching_sha2_password
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
character-set-server=utf8mb4
max_connections=600
max_connect_errors=100
transaction_isolation=READ-COMMITTED
max_allowed_packet=32M
default-time-zone='+8:00'
log_timestamps=system
lower_case_table_names=1
table_open_cache=4096
tmp_table_size=512M
key_buffer_size=512M

innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16M
innodb_buffer_pool_size=2048M
innodb_log_file_size=1G
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_open_files=300
innodb_file_per_table=1

二、data文件初始化问题

情况一安装完成后没有生成data文件:先检查一下在bin同级目录下有没有一个data的文件,如果没有,则需要进行data文件初始化操作;

情况二data文件不完整:到bin目录下执行mysqld --console命令,查看日志,如果日志有提示data文件相关的问题也需要重新初始化data文件。

解决步骤:

①如果数据库已经有建表存储数据了,则先备份数据;

②删除MySQL服务:mysqld -remove

③删除data文件

④初始化data文件:mysqld --initialize --console

⑤因为刚才删除了MySQL服务,所以最后一步需要安装MySQL服务回来:mysqld --install

⑥再重新启动:net start MySQL

三、MySQL服务问题

大家都知道,在命令行里输入 net start mysql 是启动MySQL服务,输入 net stop mysql 是停止MySQL服务,于是不由分说的输入命令,这时候可能就会出现以下情况,提示服务名无效。这种情况的出现一般会有两个原因:①MySQL服务名错误;②MySQL服务没有安装。

①MySQL服务名错误

检查本地的服务名是什么,再输入命令重新启动。如因为我在电脑上装了两个MySQL,目前使用的这个MySQL服务名称是改过的,服务名称都不是mysql,一直输入net start mysql,当然启动不了啦。所以在检查了本地MySQL的服务名是mysql8后,重新输入 net start mysql8 就可以啦。

②MySQL服务没有安装

当你在本地服务里都没有找到有关MySQL的服务,那极大可能是因为没有安装MySQL服务,这种情况最为常见,而且经常是出现在安装了一个新的MySQL,然后兴冲冲的去启动MySQL,然后就出现了服务名无效的情况。要知道,安装了MySQL和安装MySQL服务是不一样的,安装了MySQL不代表一定安装了MySQL服务!

如果没有MySQL服务,则只需要安装MySQL服务,再重新启动即可,安装和卸载的命令如下:

安装:mysqld.exe -install
卸载:mysqld.exe -remove

如果install、remove后面不加服务名,则默认是mysql。比如我的则是
安装:mysqld.exe -install mysql8
卸载:mysqld.exe -remove mysql8

tips:重新安装MySQL服务不会清除原先的数据,大家可以放心,卸载了MySQL服务再重新安装服务,原先的数据库都还存在的。注意是mysqld.exe -install mysqld.exe -remove安装卸载MySQL服务,不是重装MySQL!重装MySQL没有数据我不负责的哈。

四、MySQL进程问题

如果在启动的时候一直提示:服务正在启动或停止中,请稍等片刻后再试一次。这种情况一般是还存在有MySQL的残留进程。

检查方式一:在命令行输入命令查看。输入 tasklist|findstr "mysql" ,查看是否还存在MySQL进程,如果还存在则输入 taskkill/f /t /im mysqld.exe ,杀死进程后再次启动MySQL。

检查方式二:在任务管理器查看。打开本地任务管理器,检查一下是否还有MySQL进程,如果还有,则直接结束全部的MySQL进程再重新启动。


好啦,以上就是MySQL启动失败可能会出现的情况和解决方法了,如果经上排查后还没有解决,麻烦在评论区留一下问题情况,我也想继续了解还有哪些在MySQL已经安装成功了,但MySQL服务还是启动不了的情况,继续学习。

;