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<新密码>
    完成!

  • 相关阅读:
    haproxy 2.5 发布
    cube.js sql 支持简单说明
    基于graalvm 开发一个cube.js jdbc driver 的思路
    apache kyuubi Frontend 支持mysql 协议
    oceanbase 资源池删除说明
    基于obd 的oceanbase 扩容说明
    jfilter一个方便的spring rest 响应过滤扩展
    cube.js schema 定义多datasource 说明
    typescript 编写自定义定义文件
    meow 辅助开发cli 应用的工具
  • 原文地址:https://www.cnblogs.com/forforever/p/12650282.html
Copyright © 2011-2022 走看看