MySQL刚开始使用时遇到忘记密码,或者在下载的时候密码错误的处理过程:
一、删除数据密码报错重置
Error: Access denied for user ‘root’@‘localhost’ (using password: YES)/ Access denied for user ‘root’@‘localhost’ (using password: NO):这里看到密码输入错误可能是忘记了,接下来看处理方法:
1.重置密码:先删除E:\mysql\mysql-8.0.23-winx64
中的data
文件;
管理员运行CMD
在命令提示符中输入"sc delete mysql"卸载MySQL服务;
然后执行mysqld --initialize --console
直到生成新的密钥;
执行mysqld --install
安装MySQL服务;
然后执行mysql start mysql
运行MySQL;
执行mysql -uroot -p并输出刚才生成的密钥
最后执行alter user 'root'@'localhost' identified by 'root';
重置密码即可。
二、仍是这个报错,但是因为有数据不能删除进行重置该怎么办呢?下面我们区分两个版本进行权限跳过
第一8.0之前的版本执行net stop mysql
停止运行后执行mysqld --skip-grant-tables
命令行如下:
bin>net stop mysql
bin>mysqld --skip-grant-tables
bin>mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>quit
bin>mysqladmin -u root -p shutdown
bin>net start mysql
第二8.0以后的版本:
执行mysqld --console --skip-grant-tables --shared-memory
(运行这个代码后,该窗口不关闭)
然后执行mysql
或者mysql -uroot
(此时不需要执行net start mysql开启服务)
执行use mysql
连接权限数据库
执行show tables;
(符号别忘记)
执行select user,host,password from user;
如果这里有报错ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
则执行update mysql.user set authentication_string="123456" where user="root";
然后执行flush privileges;
刷新权限;
最后执行quit
退出即可
提示符 | 含义 | 备注 |
---|---|---|
mysql> | 命令台 | 退出quit/exit |
-> | 等待多行的下一行 | 或等待以分号(;)结束 |
'> | 等待多行的下一行 | 或等待以单引号(’)结束 |
"> | 等待多行的下一行 | 或等待以双引号(")结束 |
`> | 等待多行的下一行 | 或等待以反斜点(`)结束 |
/*> | 等待多行的下一行 | 或等待以注释终止符(*/)结束 |