ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

从网上找了很多解决办法,还是没有解决掉,终于找到一个贴子,解决了,分享一下:)

修改mysql的配置文件,方法最快,也比较好用

*********************************************************************************************************************

配置文件位置:

linux版本是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf

win下的是my.ini,一般会在安装目录的根目录

**********************************************************************************************************************

最后发现解决方案是:

打开my.ini,在

[mysqld]

skip-external-locking

skip-name-resolve

#skip-grant-tables

其中skip-grant-tables跳过权限验证是被注释掉的,去掉注释.没有自己添加上

重新启动mysql:service mysqld start 

*****************************************************************************************************

重启mysql  : service mysqld start 

停止mysql  : service mysqld stop

*****************************************************************************************************

[root@aaa libexec]# /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/data0/mysqldata --user=mysql --log-error=/data0/mysqldata/mysql-error.log --open-files-limit=20000 --pid-file=/data0/mysqldata/dzwww.com-B15-5-3-36.pid --socket=/tmp/mysql.sock --port=3306

[root@dzwww mysql-5.1.61]# mysql -u root -p

Enter password:

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

Your MySQL connection id is 1

Server version: 5.1.61-log Source distribution

Copyright (c) 2000, 2011, 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> use mysql

Database changed

mysql>grant all privileges on *.* to root@localhost identified by 'mysql'

然后重新登录 ok,成功!

你可能感兴趣的:(localhost)