mysql:ERROR 1045 (28000): Access denied for

系统 2085 0
      
        Exception: ERROR 
        
          1045
        
         (
        
          28000
        
        ): Access denied 
        
          for
        
         user 
        
          '
        
        
          root
        
        
          '
        
        @
        
          '
        
        
          localhost
        
        
          '
        
         (
        
          using
        
      
      
        
           password: NO)
        
        



问题描述如下:



landen@landen
      
      -Lenovo:~
      
        $ su root;

密码: 

root@landen
      
      -Lenovo:/home/
      
        landen# mysql

ERROR 
      
      
        1045
      
       (
      
        28000
      
      ): Access denied 
      
        for
      
       user 
      
        '
      
      
        root
      
      
        '
      
      @
      
        '
      
      
        localhost
      
      
        '
      
       (
      
        using
      
      
         password: NO)




        
          原因:
        
        
          
            
              mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的
            
          
        
      
      
        
          
            ''@'localhost'
          
        
      
      
        
          
            
              可以看出来
            
          
        
        



solution: 


      
      
        1
      
      .(http:
      
        //
      
      
        www.jb51.net/LINUXjishu/10981.html)
      
      
        2
      
      .(http:
      
        //
      
      
        blog.csdn.net/tys1986blueboy/article/details/7056835)
      
      
        

演示如下:

root@landen
      
      -Lenovo:/home/landen# 
      
        
          
            /etc/init.d/
          
        
      
      
        
          
            
              mysql stop
            
          
        
        

Rather than invoking init scripts through 
      
      /etc/init.d, use the service(
      
        8
      
      
        )

utility, e.g. service mysql stop



Since the script you are attempting to invoke has been converted to an

Upstart job, you may also use the stop(
      
      
        8
      
      
        ) utility, e.g. stop mysql

mysql stop
      
      /
      
        waiting

root@landen
      
      -Lenovo:/home/landen# 
      
        
          
            mysqld_safe --user=mysql --skip-grant-tables --skip-networking&
          
        
      
      
        

[
      
      
        1
      
      ] 
      
        15969
      
      
        

root@landen
      
      -Lenovo:/home/landen# 
      
        130406
      
      
        15
      
      :
      
        32
      
      :
      
        52
      
       mysqld_safe Can
      
        '
      
      
        t log to error log and syslog at the same time.  Remove all --log-error configuration options for --syslog to take effect.
      
      
        130406
      
      
        15
      
      :
      
        32
      
      :
      
        52
      
       mysqld_safe Logging to 
      
        '
      
      
        /var/log/mysql/error.log
      
      
        '
      
      
        .


      
      
        130406
      
      
        15
      
      :
      
        32
      
      :
      
        52
      
       mysqld_safe Starting mysqld daemon with databases 
      
        from
      
       /
      
        var
      
      /lib/
      
        mysql



root@landen
      
      -Lenovo:/home/landen#
      
        
          
             mysql -
          
        
      
      
        
          
            
              u root mysql
            
          
        
        

Reading table information 
      
      
        for
      
      
         completion of table and column names

You can turn off 
      
      
        this
      
       feature to 
      
        get
      
       a quicker startup with -
      
        A



Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id 
      
      
        is
      
      
        1
      
      
        

Server version: 
      
      
        5.5
      
      .
      
        29
      
      -0ubuntu0.
      
        12.04
      
      .
      
        2
      
      
         (Ubuntu)



Copyright (c) 
      
      
        2000
      
      , 
      
        2012
      
      , Oracle and/
      
        or its affiliates. All rights reserved.



Oracle 
      
      
        is
      
       a registered trademark of Oracle Corporation and/
      
        or its

affiliates. Other names may be trademarks of their respective

owners.



Type 
      
      
        '
      
      
        help;
      
      
        '
      
       or 
      
        '
      
      
        \h
      
      
        '
      
      
        for
      
       help. Type 
      
        '
      
      
        \c
      
      
        '
      
      
         to clear the current input statement.



mysql
      
      > 
      
        
          
            update user set Password=PASSWORD('lk198981') where user='root'
          
        
      
      
        
          
            
              ;
            
          
        
        

Query OK, 
      
      
        0
      
       rows affected (
      
        0.08
      
      
         sec)

Rows matched: 
      
      
        4
      
        Changed: 
      
        0
      
        Warnings: 
      
        0
      
      
        



mysql
      
      >
      
        
          
            
               flush privileges;
            
          
        
        

Query OK, 
      
      
        0
      
       rows affected (
      
        0.04
      
      
         sec)



mysql
      
      >
      
        
          
            
               quit;
            
          
        
        

Bye

root@landen
      
      -Lenovo:/home/landen# 
      
        
          
            /etc/init.d/
          
        
      
      
        
          
            
              mysql restart
            
          
        
        

Rather than invoking init scripts through 
      
      /etc/init.d, use the service(
      
        8
      
      
        )

utility, e.g. service mysql restart



Since the script you are attempting to invoke has been converted to an

Upstart job, you may also use the stop(
      
      
        8
      
      ) and then start(
      
        8
      
      
        ) utilities,

e.g. stop mysql ; start mysql. The restart(
      
      
        8
      
      ) utility 
      
        is
      
      
         also available.

mysql start
      
      /running, process 
      
        16401
      
      
        

root@landen
      
      -Lenovo:/home/landen#
      
        
          
             mysql -uroot -
          
        
      
      
        
          
            
              p
            
          
        
        

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id 
      
      
        is
      
      
        37
      
      
        

Server version: 
      
      
        5.5
      
      .
      
        29
      
      -0ubuntu0.
      
        12.04
      
      .
      
        2
      
      
         (Ubuntu)



Copyright (c) 
      
      
        2000
      
      , 
      
        2012
      
      , Oracle and/
      
        or its affiliates. All rights reserved.



Oracle 
      
      
        is
      
       a registered trademark of Oracle Corporation and/
      
        or its

affiliates. Other names may be trademarks of their respective

owners.



Type 
      
      
        '
      
      
        help;
      
      
        '
      
       or 
      
        '
      
      
        \h
      
      
        '
      
      
        for
      
       help. Type 
      
        '
      
      
        \c
      
      
        '
      
      
         to clear the current input statement.



mysql
      
      >
      
        
          
             show databases; 
          
        
      
      +--------------------+

| Database           |

+--------------------+

| information_schema |

| metastore_db       |

| mysql              |

| performance_schema |

| test               |

+--------------------+


      
        5
      
       rows 
      
        in
      
      
        set
      
       (
      
        0.00
      
      
         sec)



mysql
      
      >
      
        
          
            
               create database student;
            
          
        
        

Query OK, 
      
      
        1
      
       row affected (
      
        0.01
      
      
         sec)



mysql
      
      >
      
         show databases;


      
      +--------------------+

| Database           |

+--------------------+

| information_schema |

| metastore_db       |

| mysql              |

| performance_schema |

| student            |

| test               |

+--------------------+


      
        6
      
       rows 
      
        in
      
      
        set
      
       (
      
        0.00
      
      
         sec)



mysql
      
      >
      
        
          
            
               use student;
            
          
        
        

Database changed

mysql
      
      >
      
         quit;

Bye
      
    

 

mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论