linux安装mysql后,登录报错Access denied for user 'root'@'localhost' (using password: YES)

linux新手,记录一下

linux安装mysql后,无法登陆问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

1、初次登录不知道mysql密码,无法登录到mysql

安装好mysql之后,使用 service mysqld start启动
输入mysql -u root -p

# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

因为不知道密码而无法登录mysql
这时候可以在mysql的日志 mysqld.log 中 找到生成的密码:

# grep 'temporary password' /var/log/mysqld.log
2019-09-05T03:39:51.432086Z 1 [Note] A temporary password is generated for root@localhost: Sfjo9e=j/doU

Sfjo9e=j/doU 就是生成的密码
然后就可以按照正常登录流程登录了

2、登录后修改密码,提示密码不符合规则要求

登录进去后使用如下命令修改密码
alter user root@localhost identified by ‘123456’;
如果报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,可以按照下列步骤处理:

  1. 查看 mysql 初始的密码策略,
    输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看(很有可能这也看不了,那就直接进行下一步)
mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 6     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 0     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
  1. 首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
    输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,
  2. 当前密码长度如果觉得太长 ,可以设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
    输入设值语句 “ set global validate_password_length=6; ” 进行设值,
  3. 现在为 mysql 设置的密码,只要满足六位的长度即可,
    输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’; ” 可以看到修改成功,表示密码策略修改成功了

3、mysql用户表user的授权与权限收回

mysql数据库安装后,默认会有一个叫做mysql的数据库,存储了系统的相关信息,包括用户表user,索引记录表innodb_index_stats等系统信息
其中创建用户,赋权操作如下:

use mysql;
create user test identified by '123456';
# 创建test用户,不局限于本机 --@localhost将会限制只能本机登录
grant all  on *.*  to test with grant option;
# 给test用户赋权,全部权限
revoke all on *.*  from test@localhost;
# 收回所有权限

参考:
https://blog.csdn.net/Hello_World_QWP/article/details/79551789

你可能感兴趣的:(数据库)