无法启动服务:
mysql5.7突然停止运行,服务也无法启动,在尝试网上各种方法后,最终找到一种有效的解决方案,遂记录如下:

解决方法:
执行mysqld --install,查看是否已经安装成功
删除 mysqld -remove mysql
重新执行mysqld --install
启动服务net start mysql
发现还是无法启动

查看日志:mysqld --console

以上可以看到如下错误:
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
[ERROR] Fatal error: Failed to initialize ACL/grant/time zones structures or failed to remove temporary table files.
[ERROR] Aborting
解决方法:
1、去C:\Program Files\MySQL\MySQL Server 5.7\bin目录下创建my.ini文件,内容如下:
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 5.7
datadir=C:\Program Files\MySQL\MySQL Server 5.7\data
2、清空C:\Program Files\MySQL\MySQL Server 5.7\data目录,里面的信息一会通过命令会自动生成的;(先将data文件夹备份,之后再将备份的信息重新放入data文件夹中)
3、执行 mysqld --initialize --user=mysql --console
4、启动成功;

无法连接的问题:
完成上面的操作之后,用navicat和CMD登录时,用密码都会报1045-access denied for user 'root'@错,直接输入MySQL反而登录成功;
解决方法
以管理员身份启动CMD,必须是管理员身份

执行命令:mysqld --skip-grant-tables

以管理员身份重开个命令窗口

4.执行如下命令:
update mysql.user set authentication_string=password('123456') where user='root';

接下来:管理员权限运行命令:mysqladmin -uroot -p password

这样改完密码后,用Navicat for mysql软件连接正常。
当MySQL5.7服务停止并无法启动时,可以尝试执行mysqld--install,删除并重新安装服务,但若仍无法启动,可能是因为插件表或权限表问题。通过查看日志发现错误,如无法打开plugin表和user表。解决方案包括创建my.ini配置文件,清空data目录,执行mysqld--initialize初始化,以及在命令行中更新root用户的密码。完成这些步骤后,可以正常启动服务并使用新密码登录。
3036

被折叠的 条评论
为什么被折叠?



