mysql启动问题:Can‘t open the mysql.plugin table. Please run mysql_upgrade to create it.

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

无法启动服务:

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

解决方法:

  1. 执行mysqld --install,查看是否已经安装成功

  1. 删除 mysqld -remove mysql

  1. 重新执行mysqld --install

  1. 启动服务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反而登录成功;

解决方法

  1. 以管理员身份启动CMD,必须是管理员身份

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

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

4.执行如下命令:

update mysql.user set authentication_string=password('123456') where user='root';

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

这样改完密码后,用Navicat for mysql软件连接正常。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值