遇到错误ERROR 1044 (42000): Access denied for user ''@'localhost'to database 'mysql',的解决办法

新装的mysql,访问mysql数据库是遇到问题:ERROR 1044 (42000): Access denied for user ''@'localhost'to database 'mysql',

[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 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
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

mysql>

最后发现解决方案是:

打开my.ini,在

[mysqld]
skip-external-locking
skip-name-resolve
#skip-grant-tables

其中skip-grant-tables跳过权限验证是被注释掉的,去掉注释,重新启动mysql:

[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,成功!

原文地址:https://www.cnblogs.com/lechance/p/4373244.html