Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for user ‘admin’@'l
今天在别人的服务器上登录mysql发现无法登陆(Mysql别人实现安装好的)
密码和用户名都是正确的,但登录后报如下错误:
ERROR 1045 (28000): Access denied for user ‘admin’@'localhost’ (using password: YES)
尝试了加入-h和-port也无法登陆,最后只能重新修改了。注--该方法也可以用于当忘记数据库密码时,找回数据库密码用
如下是我执行过程,完全执行后,可以顺利登录数据库:linux下的执行脚本:
login as: rootAccess deniedroot@×××××××'s password:Last login: Tue Feb 21 03:56:49 2012 from 218.17.162.225[root@INOTRADE ~]# ps -A PID TTY TIME CMD 1 ? 00:00:01 init 1117 ? 00:00:00 udevd 1394 ? 00:00:00 syslogd 1405 ? 00:00:00 sshd 1414 ? 00:00:00 xinetd 1427 ? 00:00:00 couriertcpd 1429 ? 00:00:00 courierlogger 1437 ? 00:00:00 couriertcpd 1439 ? 00:00:00 courierlogger 1445 ? 00:00:00 couriertcpd 1447 ? 00:00:00 courierlogger 1454 ? 00:00:00 couriertcpd 1456 ? 00:00:00 courierlogger 1466 ? 00:00:00 qmail-send 1468 ? 00:00:00 splogger 1469 ? 00:00:00 qmail-lspawn 1470 ? 00:00:00 qmail-rspawn 1471 ? 00:00:00 qmail-clean 1486 ? 00:00:00 httpd 1528 ? 00:00:00 named 1573 ? 00:00:00 mysqld_safe 1623 ? 00:00:00 mysqld 1629 ? 00:00:00 httpd 1655 ? 00:00:00 httpsd 1659 ? 00:00:00 httpsd 1674 ? 00:00:00 crond 1682 ? 00:00:00 saslauthd 1683 ? 00:00:00 saslauthd 1689 ? 00:00:00 sshd 1691 pts/0 00:00:00 bash 1718 pts/0 00:00:00 ps// 无法登陆,密码正确的,不知道为什么,原来数据库表的访问权限也已经设置了的[root@INOTRADE ~]# mysql -uroot -pEnter password:[root@INOTRADE ~]# ERROR 1045 (28000): Access denied for user ‘admin’@'localhost’ (using password: YES)[root@INOTRADE ~]# mysql -uroot -p****** -hlocalhost[root@INOTRADE ~]# ERROR 1045 (28000): Access denied for user ‘admin’@'localhost’ (using password: YES)// 执行脚本,更新mysql数据库的数据,如用户名密码[root@INOTRADE ~]# sudo /etc/init.d/mysqld stopStopping MySQL: [ OK ][root@INOTRADE ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &[1] 1759ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)[root@INOTRADE ~]# Starting mysqld daemon with databases from /var/lib/mysql-- 这步可能不会自动执行,等待十几秒后就可以直接回车返回到命令行模式下,然后登录到mysql服务器[root@INOTRADE ~]#[root@INOTRADE ~]# mysql -u root mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -AWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.0.77 Source distributionType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> select host, user from user;+-----------+------------------+| host | user |+-----------+------------------+| % | admin || localhost | admin || localhost | horde || localhost | pma_OBBVuV2L3mjn |+-----------+------------------+4 rows in set (0.00 sec)-- 因为我数据库中没有root,换为admin了mysql> UPDATE user SET Password=PASSWORD('******') where USER='admin';Query OK, 2 rows affected (0.02 sec)Rows matched: 2 Changed: 2 Warnings: 0mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.02 sec)mysql> quit;Bye[root@INOTRADE ~]# /etc/init.d/mysqld restartSTOPPING server from pid file /var/run/mysqld/mysqld.pid120221 05:08:02 mysqld endedStopping MySQL: [ OK ]Starting MySQL: [ OK ][1]+ Done mysqld_safe --user=mysql --skip-grant-tables --skip-networking// 至此, 重启后就可以正常登录了[root@INOTRADE ~]# mysql -uadmin -p******Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 3Server version: 5.0.77 Source distributionType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> show databases;+-------------------------+| Database |+-------------------------+| information_schema || ******* || horde || mysql |+-------------------------+7 rows in set (0.01 sec)mysql> use ********;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+------------------------------+| Tables_in_CQT_AMS |+------------------------------+| T_ALM_APPLICATION || ***************** || T_SYS_ROLE || T_SYS_USER_INFO || T_SYS_USER_ROLE |+------------------------------+22 rows in set (0.00 sec)mysql> quitBye[root@INOTRADE ~]#