重装mysql遇到的问题
之前电脑里的版本是8.0.11 ,卸载安装8.0.22 ,安装完成后 navicat连接的还是8.0.11 ,感觉是mysql没有卸载干净,查找电脑把关于8.0.11的文件和文件夹都删除了,再安装新版本,之后mysql服务不能启动
然后才想起跟着网上一步一步操作
不知道第一步到底要不要关闭mysql服务,不过关了总是没错的。
安装的过程都没问题
最后net start mysql 服务起不来
mysqld --console提示以下
2018-10-13T03:29:24.179826Z 0 [System] [MY-010116] [Server] D:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.12) starting as process 7420 2018-10-13T03:29:24.205939Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory. 2018-10-13T03:29:24.207560Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. 2018-10-13T03:29:24.209780Z 0 [ERROR] [MY-010119] [Server] Aborting 2018-10-13T03:29:24.213334Z 0 [System] [MY-010910] [Server] D:\Program Files\MySQL\bin\mysqld.exe: Shutdown complete (mysqld 8.0.12) MySQL Community Server - GPL.
解决方法
之后根据https://www.cnblogs.com/greenteaone/p/9994477.html重置密码
1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务,然后输入命令
mysqld –skip-grant-tables
以不输入密码的方式启动MySQL服务,但是这条命令对MYSQL8.0.13,是没有任何作用的。
2..后来又在网上看到这条命令:mysqld --console --skip-grant-tables --shared-memory
操作步骤同1
打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务,然后输入命令
mysqld --console --skip-grant-tables --shared-memory
现在可以以没有密码的方式登录了,但是直接执行命令:
会报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql>
经过多次试验最终,重置密码的步骤如下
1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务,
2.开启跳过密码验证登录的MySQL服务
输入命令
mysqld --console --skip-grant-tables --shared-memory
3.再打开一个新的cmd,无密码登录MySQL,输入登录命令:mysql -u root -p
4. 密码置为空,命令如下:
use mysql
update user set authentication_string='' where user='root';
5.退出mysql,执行命令:
quit
6. 关闭以-console --skip-grant-tables --shared-memory 启动的MySQL服务,
7. 打开命令框,输入:net start mysql 启动MySQL服务。
8.步骤4密码已经置空,所以无密码状态登录MySQL,输入登录命令:mysql -u root -p
9.利用上一篇博客中更改密码的命令,成功修改密码,如下图:
ALTER USER
'root'
@
'localhost'
IDENTIFIED BY
'新密码'
;
10.验证更改后密码正确登录
输入quit,退出当前登录,输入登录命令:mysql -u root -p
输入密码,成功登录,到此,重置密码结束。
---------------但是到net start mysql 时候会失败 再次mysqld --console提示 ibdata1没有权限,改了权限之后仍然不能启动
然后在服务中手动启动成功。
------------------------------
mysql的服务又不能启动,服务器貌似被重启过。
尝试用上面的方法重装,但是进行到把密码设置为空的时候失败,row 0 affect,
后来在这一步
2启跳过密码验证登录的MySQL服务
输入命令
mysqld --console --skip-grant-tables --shared-memory
3.再打开一个新的cmd,无密码登录MySQL,输入登录命令:mysql -u root -p
可以无密码登录后,用navicat登录,修改密码