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)