signed

QiShunwang

“诚信为本、客户至上”

MySQL服务无法启动 + MySQL 初始化没有反应 + must reset ur password

2021/6/9 8:08:38   来源:

因为其他博客要不只记录了自己的问题,要不就干脆千篇一律的删除 data,修改 basedirdatadir,所以写了这篇 solution

下列操作均在 管理员 cmd 下完成(win + x + a)

第一步,cd 到形如 D:\MySQL8\bin 的文件夹下

第二步,生成 error 文件,D:\MySQL8\bin\mysqld --console

第三步,试运行,得到错误原因,net start mysql80 (replace it with ur mysql name)

第四步,查看错误原因,D:\MySQL8\bin\mysqld --console,对应处理 [ERROR]项

比如,下面的这个是 idbata1的权限不够
在这里插入图片描述
对于这里的 [ERROR],有下面几种

  1. unknown variable -> 直接在 my.ini 里注释掉相应设置即可
  2. 端口占用
netstat -aon | findstr 3306   	查找3306端口
taskkill -F /pid 15688  		强制杀死15688进程
  1. 缺文件,如缺 data,检查 my.ini,确定所有的路径形如 D:\MySQL8\bin\mysqld --consoledata 不能写成 Data -> 重新 initialize
  2. 读写权限问题,如 idbata1 没有写权限,idbata1 文件在 D:\MySQL8\data
    右键 -> 属性 -> 安全 -> User -> 完全控制

其他问题

  • You must reset your password using ALTER USER statement before executing this statement
    这条语句在 MySQL 8.0.x 有错
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'

正确的是

alter user user() identified by "1234";
  • 如果你两个 MySQL 都添加了环境变量,那么 cmd 下调用的时候要写成形如下面的这种形式(这里省略前面的c : >
D:\MySQL8\bin\mysqld --initialize --console
  • D:\MySQL8\bin\mysqld --initialize --console 初始化没有反应,8.0.20 以后的用下面的语句
D:\MySQL8\bin\mysqld --no-defaults --initialize --console