mysql8.0版本skip-grant-tables出现的新问题

时间:2024-01-24 07:01:06

MySQL 初始化 mysqld --initialize 的时候会有密码,就这个样子,

可是毕竟总有人跟我一样,不熟悉安装过程,没有注意这一密码这一项,导致你现在不知道密码的尴尬处境,或者说你是正常用了某一天脑子短路忘了密码,

那么网上查到很多方法会告诉你,往 ini 里配置 skip-grant-tables,确实是正确的方法,

不过你会陷入另一个坑,你的 MySQL 服务一启动就会立刻自动关闭,

Can't connect to MySQL server on xxx (10061)

这就尴尬了,想跳过密码验证又遇到服务秒死,

我们从data文件的日志文件中看到有这样的 error 

[ERROR][MY-010131] [Server] TCP/IP, –shared-memory, or –named-pipe should be configured on NT OS 
[ERROR][MY-010119] [Server] Aborting 
[Warning][MY-011311] [Server] Plugin mysqlx reported: ‘All I/O interfaces are disabled, X Protocol won’t be accessible’

就在这里我卡了半天,终于找到了正确的办法,我也分享一下,这里是她的地址:https://blog.csdn.net/sinat_38003757/article/details/82683747 

原来是因为 8.0 ,就是因为我们用的是 mysql8.0 以上版本,版本新问题,果然我在 ini 里加上了 shared-memory 之后就能用了(现在再看error内容好像人家说的挺清楚)。

但是新的问题又来了(如果没有可以忽略,反正我是遇到了),当我遇到了一个问题(忘了是什么了),反正就是要初始化 即 mysqld --initialize 的时候,又出现了问题,从日志文件里,来看一下

[ERROR] --initialize specified but the data directory has files in it. Aborting.
 [ERROR] Aborting

问题的原因是你的路径中已经有一个 data 文件,所以把 data 直接删了就行。接下来就顺利了,记得 copy 一下密码哦。

感叹一下,一代版本一一代坑,最近把好几个东西更新了,碰了不少坑,虽然有收获但是好像没这个必要。以后如果不是确实有必要,还是少走新路子,这些个坑坑洼洼还是等别人都烫平了再来吧,不然太浪费时间,没有必要。