Contos7中Mysql忘记密码或者初始登录时密码错误解决方法

Contos7中Mysql忘记密码或者初始登录时密码错误解决方法

1、先停止mysql服务

service mysqld stop

2、修改mysql的配置文件,通过下面命令,进入配置文件当中

vim /etc/my.cnf

在文件末尾加上

skip-grant-tables

3、重启mysql服务,

service mysqld start

4、进入数据库(输入密码时,直接回车即可)

mysql -u root -p

5、重置mysql密码

update mysql.user set password=password('123456') where user='root';

根据版本不同,如果执行上述语句报错,Unkown column “password”in “field list”,原因是新的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,此时需要将上述语句改为如下所示 :

update mysql.user set authentication_string=password('123456') where user='root'and host='localhost';

6、密码改成功后,需将skip-grant-tables给删除掉。
vim /etc/my.cnf 进行删除

7、重启mysql服务

service mysqld restart

8、输入密码,正常登录mysql即可
在这里插入图片描述

CentOS 7 上安装 MySQL 后,使用初始密码登录失败是一个常见问题,通常由初始密码错误密码策略限制或数据库正确初始化等原因引起。以下是详细的解决方法: ### 3.1 检查初始密码日志 MySQL 在首次启动会生成一个临密码,通常可以在日志文件中找到: ```bash sudo grep 'temporary password' /var/log/mysqld.log ``` 如果日志中没有输出,说明没有生成临密码,此可以直接使用空密码登录: ```bash mysql -u root -p ``` 输入密码直接回车。 ### 3.2 忘记初始密码密码错误 如果初始密码无效或被修改过,可以通过跳过权限验证的方式重置 root 密码: 1. 停止 MySQL 服务: ```bash sudo systemctl stop mysqld ``` 2. 启动 MySQL 跳过权限验证: ```bash sudo mysqld_safe --skip-grant-tables & ``` 3. 连接 MySQL 并更新 root 用户密码: ```sql mysql -u root FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` 4. 退出并重启 MySQL 服务: ```bash sudo systemctl restart mysqld ``` ### 3.3 密码复杂度限制 MySQL 8.0 引入了密码策略插件(如 `validate_password`),如果设置的密码过于简单,会导致密码修改失败。可以降低密码策略强度: ```sql SET GLOBAL validate_password.policy = STRONG; -- 可选值:LOW, MEDIUM, STRONG ``` 或者完全禁用密码策略插件: ```sql UNINSTALL PLUGIN validate_password; ``` ### 3.4 检查用户权限和 host 设置 如果希望使用 root 用户从远程连接,需要确保 `mysql.user` 表中 root 用户的 `host` 字段为 `%`: ```sql UPDATE user SET host = '%' WHERE user = 'root'; FLUSH PRIVILEGES; ``` 此外,可以使用 `GRANT` 语句重新授权远程访问权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new_password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` ### 3.5 数据库初始化失败 如果 MySQL 启动失败,并提示 `Table 'mysql.user' doesn't exist`,说明数据库正确初始化。可以尝试重新初始化: ```bash sudo mysqld --initialize ``` 然后启动 MySQL 服务: ```bash sudo systemctl start mysqld ``` ### 3.6 使用安全模式重置密码 如果上述方法无效,可以尝试使用安全模式重置密码: 1. 停止 MySQL 服务: ```bash sudo systemctl stop mysqld ``` 2. 创建一个包含重置密码命令的 SQL 文件,例如 `/root/reset.sql`,内容如下: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; ``` 3. 启动 MySQL 并加载该 SQL 文件: ```bash sudo mysqld --init-file=/root/reset.sql & ``` 4. 登录验证后,删除 `/root/reset.sql` 文件以确保安全。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值