安装完成后通过systemctl start mysqld 启动mysql
直接输入mysql发现报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
通过密码登录
mysql -u root -p
1.初始密码不知道的话可以通过找回密码
grep "password" /var/log/mysqld.log
:后即为初始密码
2019-07-05T07:19:30.910345Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: =XD_<j<eU7XN
注:只有启动一次后才有初始密码。
2.无法找到密码
当然也有可能找不到。说明Mysql 初始化和启动的日志没有保存在 /var/log/mysqld.log 文件中,如果你不知道是哪个文件,那么还有一个有效的方法:
在/etc/my.cnf 中添加 skip-grant-tables 参数。此参数的作用是登录Mysql 数据库不进行用户密码验证。
[mysqld]
skip-grant-tables
systemctl restart mysqld
重置初始密码
测试mysql版本mysql Ver 8.0.16
需要通过alter 进行重置,记得命令后的 分号”;“
alter user 'root'@'localhost' identified by '复杂密码';
通过flush privileges;进行更新
flush privileges;
测试发现如果没有修改默认密码,好多命令不能用,提示要修改密码,实际操作中发现刚开始密码复杂度要求比较高需要大小写特殊字符至少八位
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
可以先符合密码复杂度修改后,在设置简单密码(如果需要)
set global validate_password.policy=LOW;
set global valite_password.length=6;
查看是否修改成功
mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 6 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
设置完成后即可设置简单密码
alter user 'root'@'localhost' identified by 'aa123!';
flush privileges;