前提条件:
在命令行中输入:
net start mysql
显示“服务无法启动”,“服务没有报告任何错误”。
解决方法
确认MYSQL服务已经关闭
在命令行中输入:
mysqladmin -u root shutdown
win+s,搜索“服务”,确认MySQL处于停止状态。
将MYSQL初始化
1、将重要的数据备份,然后删除MYSQL文件夹中的data文件
2、检查my.ini文件是否有误
[mysqld]
port=80
basedir=C:\mysql\mysql-8.0.31-winx64
datadir=C:\mysql\mysql-8.0.31-winx64\data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4
[client]
port=80
重点检查datadir那两行,检查路径是否正确;如果有问题,及时进行修改。
3、在命令行中依次输入:
mysqld --remove //删除MYSQL服务
mysqld --initialized-insecure //初始化MYSQL,并且默认密码为空
此时MYSQL文件夹中会生成一个新的data文件
mysqld --install //安装MYSQL服务
接着,再次启动数据库就能启动成功了,在命令行中输入:
net start mysql
mysql -u root -p //登录MYSQL
此时为空密码,在password那一行直接回车就好
重新设置密码
一、删除了data文件
按照以上步骤,我们已经成功登陆,只是密码为空;若要设置密码,只需在命令行中输入:
alter user 'root'@'localhost'identified by 'new password'; //new password为设置的新密码
二、保留data文件
1、先关闭正在运行的MYSQL服务
2、cd进入bin目录
3、输入以下命令,使得启动MYSQL服务时跳过权限表认证
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;