ERROR: Access denied for user 'root'@'localhost' (using password: NO)
发现:
mysql -u root@localhost -p 成功
mysql -u root -p 失败
mysql> SELECT user, host FROM mysql.user;
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user'
mysql> SELECT USER(), CURRENT_USER();
+--------------------------+----------------+
| USER() | CURRENT_USER() |
+--------------------------+----------------+
| root@localhost@localhost | @localhost |
+--------------------------+----------------+
1 row in set (0.01 sec)
原因: root 设置了密码,需要把root的密码清掉。
以下可以解决问题(方案一):
1) service mysqld stop
2) mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
3) mysql -u root
4) Setup new MySQL root user password
use mysql;
select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *CF1E6A25C954B638A451D6|
| root | centos64 | |
| root | 127.0.0.1 | |
| | localhost | |
| | centos64 | |
+------+-----------+-------------------------------------------+
update mysql.user set password=PASSWORD("***********") where User='root';
select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *CF1E6A25C954B638A451D6 |
| root | centos64 | *CF1E6A25C954B638A451D6|
| root | 127.0.0.1 | *CF1E6A25C954B638A451D6|
| | localhost | |
| | centos64 | |
+------+-----------+-------------------------------------------+
flush privileges;
quit
5) Stop MySQL Server: service mysqld stop
6) Start MySQL server and test it:
service mysqld start
mysql -u root -p
SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
以下可以解决问题(方案二):
先用方案一登录mysql,再把root的密码设置为空
use mysql;
update user set password=PASSWORD("****************") where User='root';
flush privileges;
quit
=========================
在授权的时候报错:
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'mdm'
首先这里是用root用户操作,所以对这个数据库的权限绝对是最高级的,但是如果是非root用户操作,就可能是权限的问题,需要root用户授权。
出现上面的报错,很可能,其实应该可以说基本上都是因为my.cnf 文件里面有skip-name-resolve参数,这个参数导致这不能解析hostname或其它方式的登录, 所以登录任何用户,匹配的时候不走root@'localhost',或者127.0.0.1或者::1 ,而是 一个劲的走root@'%'.
再来查看一下每种方式下的root用户的具体权限:
mysql> select * from user\\G;
我这里root有三种解析登录方式分别是:Host: bidevedw\_db、Host: ::1、Host: %
一般情况还有Host:127.0.0.1、Host:localhost我的里面把哪两种删了。
请注意 !
注意上面每条记录的的红色字体部分Grant_priv: Y
这个表示,以这种方式解析登录的root用户,是否有grant权限,Y则表示有授权限给其他用户的权限,N表示没有。
这里恰好,就是我们要找的原因,因为我的/my.cnf文件里面有skip-name-resolve参数,所以root都是解析到@'%'方式登录,于是就没有grant_priv权限。
解决方法:
1、在不重启MySQL服务的情况下,只需要在登录的时候加上-h参数。
例如:(a). /usr/local/mysql/bin/mysql -uroot -p123456 -h::1
(b)./usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1
(c)./usr/local/mysql/bin/mysql -uroot -p123456 -hlocalhost
2、需要重启MySQL。把skip-name-resolve参数去掉 ---- 还没验证。不过我记得,如果去掉了,日志里面会有大量的警告信息。我是因为那些警告信息,才添加的这个参数。
=========================================
HTTP Status 500 - javax.servlet.ServletException: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
grant all privileges on aldb.* to root@localhost;
grant select on aldb.* to nobody@localhost;
grant all privileges on aldb.* to root@112.112.112.112;
grant select on aldb.* to nobody@112.112.112.112;
grant all privileges on aldb.* to root@res.res.res.res;
grant select on aldb.* to nobody@res.res.res.res;
use mysql
update user set password=password('xxxxxxxxxx') where user='root';
flush privileges;
====================================================
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-----------------------------
/etc/init.d/mysqld status
/etc/init.d/mysqld stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
需要使用Enter中断会话
mysql -u root -p -hlocalhost
mysql> use mysql;
select Host, User, Password from user where user='root' and host='root' or host='localhost';
+-----------+--------+----------+
| Host | User | Password |
+-----------+--------+----------+
| localhost | | |
| localhost | aimin | |
| localhost | nobody | |
| localhost | root | |
+-----------+--------+----------+
4 rows in set (0.00 sec)
update user set password=PASSWORD('XXXXXXXXXXXXXX') where user='root' and host='root' or host='localhost';
flush privileges;
quit
/etc/init.d/mysqld restart
mysql -u root -p -hlocalhost
----------------------------------------------
# service mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root -p -hlocalhost
mysql> UPDATE user SET Password=PASSWORD('xxxxxxxxxxxxxxxxxxxxx') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# service mysqld start
restart CentOS.
-------------------------------------
Access denied for user 'root'@'localhost' (using password: YES)
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'mysql'
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
GRANT ALL ON *.* TO 'root'@'127.0.0.1';
GRANT ALL ON *.* TO 'root'@'xyz.xyz.com.cn';
GRANT ALL ON *.* TO 'root'@'123.123.123.123';
FLUSH PRIVILEGES;
quit
REF:
http://www.cnblogs.com/kerrycode/p/3861719.html
https://help.ubuntu.com/community/MysqlPasswordReset
http://blog.itpub.net/27099995/viewspace-1362951/
分享到:
相关推荐
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决: 1.打开在创建mysql容器时挂载的conf目录下的mysqld.cnf(如下文件) 我创建docker的姿势 2.进入mysqlId.cnf文件中在...
首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示’Access denied for user ‘root’@’localhost’。 数据库卸载重装了几次都不行。好像感觉数据清理不干净。解决的过程遇到的坑,这里记录分享下。...
"中国E网下载系统"是一个专门用于文件下载管理的平台,其核心功能是提供便捷、安全的文件上传、存储和下载服务。... 该系统可能采用了ASP(Active Server Pages)技术,这是一种微软开发的服务器端脚本环境,用于生成...
ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘python’ 2. 解决方法: 执行以下命令进入控制台: mysql –user=root -p 输入root用户的密码即可进入mysql控制台: 创建数据库: ...
SQL:SELECT value FROM [Table]vars WHERE name=’noteexists2′ UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE name=’noteexists2′ Error:SELECT command denied to user ‘数据库...
MySQL数据库在使用过程中可能会遇到各种权限问题,其中 ERROR 1044 (42000): Access denied for user ''@'localhost' to database'是一个常见的错误提示,表明当前用户没有权限访问指定的数据库。根据提供的文件内容...
Unhandled rejection SequelizeAccessDeniedError: Access denied for user 'lupeng'@'localhost' (using password: YES) 这是Node在使用Sequlize连接Mysql数据时报的错,关键看冒号后面的错误:访问拒绝,关键是...
主要给大家介绍了如何解决mysql在创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的错误提示,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
2. **Error 1142 (42000): SELECT command denied to user 'username'@'hostname' for table 'tablename'** - 解释:用户`username`无法从`tablename`表中选择数据。 3. **Error 1141 (42000): INSERT command ...
在MySQL中,错误号1045 (28000)通常表示“Access denied for user”,这是一个常见的权限问题,意味着指定的用户无法使用提供的密码登录数据库服务器。本篇文章将详细探讨这个问题的原因以及两种可能的解决方案。 #...
在使用MySQL数据库时,有时会出现一个常见的错误:`ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES)`。这个错误表明,你尝试用root用户登录MySQL,但系统拒绝了你的访问,...
当遇到“Access denied for user 'root'@'localhost'”这样的MySQL登录错误时,通常意味着系统拒绝了root用户的登录请求,这可能是由于多种原因引起的,包括但不限于密码错误、权限设置问题或者MySQL配置文件的变动...
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 第一步:编辑mysql安装目录中的配置文件my.ini,在[mysqld]这个条目下加入 skip-grant-tables 如下图: 保存退出后 第二...
在使用MySQL数据库时,有时会出现一个常见的错误,即"ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"。这个错误表明,尝试以root用户身份登录MySQL服务器时,由于认证失败...
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 提示的是用户访问被拒绝,原因是密码不正确,但是我们明明配置的是正确的密码,原因就在yml中: spring: datasource: ...
stack Error: EACCES: permission denied, mkdir ‘/Users/mac-pro/.nvm/versions/node/v10.16.0/lib/node_modules/webpack/node_modules/fsevents/build’ gyp ERR! System Darwin 19.3.0 gyp ERR! command “/...
本教程将详述如何在Ubuntu 18.0.4上安装MySQL,并解决在登录时遇到的"ERROR 1698 (28000): Access denied for user 'root'@'localhost'"的问题。 首先,安装MySQL服务可以使用Ubuntu的包管理器`apt`。执行以下命令...
GRANT ALL PRIVILEGES ON [dbname].* to '[user]'@'[hostname]' identified by '[password]' ``` 其中,[dbname]为数据库名称,[user]为用户名,[hostname]为主机名或IP地址,[password]为密码。 2. **主机名...
NULL 博文链接:https://vernonchen163.iteye.com/blog/1995514
MySQL ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO) 的解决办法和原因 这两天下载了MySQL5.7.11进行安装,发现到了初次使用输入密码的时候,不管怎样都进不去,即使...