<!-- 密碼突然登錄不上MySQL了,久了也不曉得是不是密碼不正確...只能改密碼...一年難得碰一次,感覺每次總有莫名其妙的問題 --> <!-- 修改方案只找到一個,就是無密碼驗證開啟mysql服務,然後登錄,設置新密碼 --> <!-- mysql版本不同有些命令無效,大概分高低兩版本 -- ...
<!-- 密碼突然登錄不上MySQL了,久了也不曉得是不是密碼不正確...只能改密碼...一年難得碰一次,感覺每次總有莫名其妙的問題 --> <!-- 修改方案只找到一個,就是無密碼驗證開啟mysql服務,然後登錄,設置新密碼 --> <!-- mysql版本不同有些命令無效,大概分高低兩版本 -->
<!-- 低版命令 我的是新版本,以下命令沒有試成功 --> <!-- 無密碼驗證開啟服務 -->
mysqld --skip-grant-tables
<!-- 修改密碼-並刷新-退出 -->
use mysql; update user set password=password('123456') where user='root'; flush privileges; quit
<!-- 高版本-修改成功了 --> <!-- 指定啟動配置文件 無密碼驗證開啟服務; --> <!-- 前面沒有指定啟動文件,一直報錯:Failed to find valid data directory; 我自己是沒有額外配置的,這就是預設的配置,還要報錯,真的是服了 --> <!-- C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 此文件裡面指定了數據存放位置 datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data -->
mysqld --defaults-file='C:\ProgramData\MySQL\MySQL Server 8.0\my.ini' --console --skip-grant-tables --shared-memory
<!-- 另開視窗進入mysql --> <!-- 輸入直接 回車 回車;不輸入密碼 -->
mysql -uroot -p
<!-- 刷新一下 -->
flush privileges;
<!-- 再修改密碼 報錯了 -->
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
<!-- 換這個成功 -->
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
<!-- 再試試也可以 -->
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';
<!-- 最後刷新一下然後退出 -->
flush privileges;
quit
<!-- 'root'@'%' 'root'@'localhost' 兩個好像是遠程和本地使用時的區別? -->
<!-- 關閉服務再正常重啟,輸入密碼 mysql 就成功登錄了 -->