zoukankan      html  css  js  c++  java
  • 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】

    本文转载自:https://blog.csdn.net/hua1011161696/article/details/80666025

    解决方案:

        步骤一:关闭数据库服务端mysqld程序

    两种方式:

    ①快捷键 windows + R     ;输入 services.msc  ;   找到MySQL  停止其服务(前提是你之前已经把MySQL加入了系统服务中)

     

    ②在命令行程序中;注意需要以管理员权限运行cmd程序,不然无法关闭mysqld进程

    >>tasklist |findstr mysqld        这行命令可以用来查看mysqld是否在运行,在运行中则可以查到它的PID

    >>taskkill /F /PID xxxx             xxxx是从前面一条命令得到的PID值

     

    步骤二:跳过权限登录MySQL 服务器端

    在cmd中执行 mysqld --skip-grant-tables 

    >>mysqld --skip-grant-tables

     

    此时cmd程序会阻塞,关闭cmd程序 然后重新以管理员权限运行cmd

    然后在cmd命令行中输入 mysql 就能连接上MySQL 服务器端了

    >>mysql

    然后可以通过sql语句 :SELECT * from mysql.userG;  来查看服务器端所有的用户信息,重点查看User、Password、authentication_string这三项。这条语句非常关键。

    步骤三:修改密码

     依次执行如下sql语句:

    update mysql.user set authentication_string=password('321') where user = 'root';
    flush privileges;
    上面第一条sql语句中 password('密码') 函数中写你想要改成的密码,我这用的是密码321

    接着执行:

    SELECT * from mysql.userG;
    去找到root用户的authentication_string这项,并把它的值记下来。

    MySQL会给密码进行加密,你想要设置的密码进行加密后的值就等于此时authentication_string这项的值

    所以接下来把Password这项的值也设置成此时authentication_string项的值就ok了;我设置的密码是321 ,其对应的密文是  *7297C3E22DEB91303FC493303A8158AD4231F486

    执行下面两条sql语句:

    update mysql.user set password = '*7297C3E22DEB91303FC493303A8158AD4231F486' where user = 'root';
    flush privileges;


    步骤四:

    输入 quit 退出 mysql ;然后就可以直接登录了

    >>mysql -u root -p

    --------------------------------------------------------------------------------

    当然也可以重启下mysqld再登录
    再次提醒:需要以管理员权限运行cmd
    >>tasklist |findstr mysqld
    >>taskkill /F /PID xxxx

    然后就是启动mysqld程序
    (不知怎么把mysqld加入系统服务中去可看点击打开链接)
    >>mysqld

    若已经把mysqld程序加入了系统服务中,则需要在系统服务中启动MySQL服务端

    快捷键 windows + R     ;输入 services.msc  ;

     

    最后就是重新登录

    >>mysql -u root -p

    在Password:处填入你前面设置的密码

    补充:修改密码时报语法错误解决方法

    问题:

    mysql> update mysql.user set authentication_string=password('321') where user = 'root';

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('321') where user = 'root'' at line 1

    解决方法:

    使用如下语句即可解决

    alter user 'root'@'localhost' identified by  '123';

  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/qiuniao/p/12242474.html
Copyright © 2011-2022 走看看