美文网首页
关于在Ubuntu18里面修改MySQL5.7数据库的登录密码来

关于在Ubuntu18里面修改MySQL5.7数据库的登录密码来

作者: 武汉周杰 | 来源:发表于2020-03-10 11:11 被阅读0次

    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;
    
    第五步,你再用你创建的这个用户名和密码登录phpMyAdmin试试,应该不会报上面的[1698]错误了。

    相关文章

      网友评论

          本文标题:关于在Ubuntu18里面修改MySQL5.7数据库的登录密码来

          本文链接:https://www.haomeiwen.com/subject/vdbidhtx.html