zoukankan      html  css  js  c++  java
  • 解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)

    1 现象

    mysql -u root -p

    错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
    2 linux系统:

    在配置文件my-default.cnf或my.cnf下

    [mysqld]下添加skip-grant-tables;因为此方法无效,所以找到了以下方法

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。

    所以在/var/log/找到文件mysqld.log

    用命令:vi 打开

    进入命令模式

    查找生成的随机密码

    输入:/temporary password

    可以看到:

    A temporary password is generated for root@localhost: <你要找的临时密码>
    所以就可以以此密码登陆‘root’用户了
    mysql -u root -p 回车
    要输入密码:<上面找到的临时密码>
    输入:use mysql;
    进入mysql后就是修改密码了
    如果直接输入:update user set authentication_string=password('新密码,例如:123456') where user='root';
    则:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    这个意思是说你设置的密码‘123456’不符合安全规则(1.必须含有数字,小写或大写字母,特殊字符;
    2.最小长度为8)


    必须修改两个全局参数
    首先,修改validate_password_policy参数的值
    set global validate_password_policy=0;
    这样就去除了规则 1,只有长度限制了
    接下来修改参数 validate_password_length
    mysql> select @@validate_password_length;#查看参数值
    +----------------------------+
    | @@validate_password_length |
    +----------------------------+
    | 8 |
    +----------------------------+

    set global validate_password_length=1;

    mysql> select @@validate_password_length;#查看参数值
    +----------------------------+
    | @@validate_password_length |
    +----------------------------+
    | 4 |
    +----------------------------+
    只要设置的值小于4都为4。
    这样就可以修改简单的密码了
    update user set authentication_string=password('密码:root') where user='root';
    flush privileges;
    退出:quit
    重启服务:service mysqld restart
    进入mysql
    mysql -u root -proot
    成功!
    3 windows:

    进入mysql安装目录,复制my-default.ini,命名为my.ini


    编辑my.ini
    在[mysqld]下添加skip-grant-tables
    保存。

    重启mysql:1、net stop mysql 2、net start mysql
    进入mysql
    mysql -u root -p
    不用输入密码,直接回车
    输入use mysql
    修改root的密码
    update user set authentication_string=password('新密码') where user='root';
    flush privileges;
    退出:quit
    再次重启mysql:1、net stop mysql 2、net start mysql
    测试是否成功就是是否登陆成功咯。
    mysql -u root -p<新密码>
    完成!

  • 相关阅读:
    URL vs. HTML 录制模式
    多机联合产生负载
    浏览器打开URL的方式和加载过程
    与前端性能相关的头信息
    HTTP协议结构
    前端优化
    前端性能测试工具
    Apache 服务器
    java回调机制
    不允许用大于号小于号,比较任意两个数字大小
  • 原文地址:https://www.cnblogs.com/forforever/p/12650282.html
Copyright © 2011-2022 走看看