这里第一次安装mysql容易出现报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor
解决方法如下:
1. 修改mysql的初始密码(有两种方法)
1.1 第 1 种方法 (不推荐,无聊时弄出来的)
MySQL第一次启动后会创建超级管理员账号 root@localhost
,初始密码存储在日志文件中:/var/log/mysqld.log
查看 Mysql 服务器初始密码的命令如下:
grep 'temporary password' /var/log/mysqld.log
通常而言,界面显示的 A temporary password is generated for root@localhost:
后面就是 Mysql 服务器的初始密码
[root@localhost ~]#
mysql -uroot -p
Enter password: 输入 Mysql 初始密码
进入 Mysql 服务器命令终端,输入命令如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#密码太弱
如果密码太弱了,就会报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1.1.1 Mysql 初次修改密码,因密码太弱报错的多种解决方法如下:
- 使用复杂密码,Mysql 数据库默认的密码策略是要包含数字、字母及特殊字符;
- 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即
validate_password_policy
(以及validate_password_length
等相关参数),使其支持简单密码的设定,具体方法可以参考:如何修改 Mysql 的密码策略:传送门;
进入 Mysql 服务器 mysql> 使用查看 Mysql 密码策略命令:
mysql> SHOW VARIABLES LIKE 'validate_password%';
修改 Mysql 密码策略安全等级命令:
mysql> set global validate_password_policy=LOW;
设置限制 Mysql 密码长度为 6 个字符(当然这个长度可以自己选择,但是只有配置了密码策略为 LOW
才可以,仅仅只检查密码长度)
mysql> set global validate_password_length=6;
- 修改默认安装 Mysql 的配置文件
/etc/my.cnf
(配置文件默认是该路径下),添加validate_password=OFF
,保存并重启 MySQL 服务器
1.2 第 2 种方法 (推荐)
在mysql 的配置文件 /etc/my.cnf 里面[mysqld]
下面加入如下内容:
[mysqld]
skip-grant-tables
然后就可以不用输入密码,就能登录mysql
mysql -uroot -p
输入命令,直接回车就能进入了!
mysql>
use mysql;
mysql>
update user set authentication_string=password('新密码') where user='root';
mysql>
flush privileges;
退出mysql
mysql>
quit;
在这里可能会想到,我为 root 用户设置了mysql密码,那么我之前在/etc/my.cnf 内配置的 skip-grant-tables
还有没有作用呢?答案是没有了,优先级是看该用户是否设置了密码,不过初始密码不是已经为 root 设置了密码吗?看来这又是一个挠人的问题!
之后重新启动 mysql 服务器
service mysqld restart
shell终端输入命令:
mysql -uroot -p
直接回车就可以不用验证密码,直接登陆mysql了。
标签:1045,Centos,mysql,ERROR,密码,初始密码,Mysql,password,root From: https://www.cnblogs.com/Loki-Severus/p/17252649.html