MySQL安装好之后,有时候会不知道root密码,有时候虽然设置了root密码,但是用phpMyAdmin连接MySQL数据库的时候,有总是提示”# SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
“,这是因为MySQL5.7以上数据库已经不允许用root用户通过phpMyAdmin操作数据库了,那么怎么办?只需要再创建一个你的名字的超级用户和密码,再用这个密码来登录phpMyAdmin就OK了。具体操作步骤如下:
第一步,修改数据库配置文件,跳过密码检查,登录MySQL
#####打开MySQL的配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
#####在这个文件尾部加上以下两行配置,来跳过密码检查
skip-external-locking
skip-grant-tables
#####重启MySQL数据库
sudo service mysql restart
#####再用命令行登录MySQL就不用密码了
mysql
#####最后所有问题都解决后,记得回来把上面两行配置删除或者在每行配置前面讲上#号来注释掉
第二步,在MySQL命令中修改root用户密码
#####修改root用户密码(你需要把第二行里面的'ZhoJie_86-Pwd'修改成你自己的密码)
mysql>use mysql;
mysql>update user set authentication_string=password('ZhoJie_86-Pwd') where user='root';
#####如果回车之后报错,可能是你设置的root密码太简单了,不符合MySQL中密码复杂等级的要求,这里要么你设置一个很复杂的密码,要么可以用下面这个命令来修改MySQL中密码复杂等级
set global validate_password_policy=0;
#####上面最后一个数字,0为最简单的密码等级、2为最复杂的密码等级,当然还有其他很多类似的修改MySQL密码规则的参数可以去调整
如果修改root密码成功,需要用以下命令更新
mysql>flush privileges;
退出MySQL
mysql>quit;
第三步,在MySQL命令中修改密码强度参数
#####可以通过以下命令来查看密码强度
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM |
+----------------------------+
1 row in set (0.00 sec)
#####validate_password_policy
#####密码强度检查等级,0/LOW、1/MEDIUM、#####2/STRONG。有以下取值:
#####Policy Tests Performed
#####0 or LOW Length
#####1 or MEDIUM Length; numeric,lowercase/uppercase, and special characters
#####2 or STRONG Length; numeric, #####lowercase/uppercase, and special characters; dictionary file
#####默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
#####也可以通过以下命令来查看密码强度的另外几个参数
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
6 rows in set (0.08 sec)
#####validate_password_dictionary_file
#####插件用于验证密码强度的字典文件路径。
#####validate_password_length
#####密码最小长度,参数默认为8
#####validate_password_mixed_case_count
#####密码至少要包含的小写字母个数和大写字母个数。
#####validate_password_number_count
#####密码至少要包含的数字个数。
#####validate_password_special_char_count
#####密码至少要包含的特殊字符数。
可以用以下命令来修改这些密码强度参数
mysql>set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql>set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql>set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
mysql>set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql>set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)
#####最后看看修改后的密码强度参数
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 3 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 3 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
第四步,在MySQL命令中创建一个新的超级用户,用来登录和操作phpMyAdmin
#####创建一个叫zhojie的超级用户和zhojie的密码(这里你需要修改zhojie为你自己的用户名,ZhoJie_86-Pwd为你自己的密码)
mysql>CREATE USER 'zhojie'@'localhost' IDENTIFIED BY 'ZhoJie_86-Pwd';
#####赋予zhojie这个用户超级权限(同上,下面的zhojie也要修改成你自己的用户名)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'zhojie'@'localhost' WITH GRANT OPTION;
网友评论