有效解决jdbc连接mysql提示Access denied for user ‘‘@‘localhost‘ to database ‘mysql1‘

方案一

在修改mysql的root用户密码后,再登陆,提示如标题的错误,找了一番答案之后,终于解决,步骤如下:

1.停掉mysql: service mysqld stop

2.使用不验证的状态登陆mysql:

      mysqld_safe --skip-grant-tables &   //后台运行

      启动mysql:   service mysqld start

3.进入mysql: mysql -u root

4.use mysql;

5.delete from user where user=’’; 删除空用户

6.flush previlige; 刷新权限

7.service mysqld restart

8.问题解决

方案二

参考链接:[url]http://blog.sina.com.cn/s/blog_40aff6390100jeke.html[/url]
执行步骤如下:
1:CMD到Mysql安装目录,我的是:G:\j2ee\mysql-5.6.17-winx64\mysql-5.6.17-winx64\bin
2:执行: mysqld --defaults-file=“G:\j2ee\mysql-5.6.17-winx64\mysql-5.6.17-winx64\my-default.ini” --console --skip-grant-tables
-其中my-default.ini为MySQL自带文件
3:mysql -u root mysql
4:UPDATE user SET Password=PASSWORD(‘123’) where USER=‘root’;

方案三

下面是本人在参考别人的基础之上得到的解决方法:

问题的引出:

我在CentOS上装完mysql后,用navicat链接的时候,抛出MySql - SQL Error (1130): Host IP is not allowed to connect to this MySQL server 错误,具体解决方法请参考本人日志http://361324767.blog.163.com/blog/static/114902525201232832621498/。

该问题解决后,本人登录mysql ,输mysql -u root时无错,但是执行如下语句时:

mysql> use mysql

抛出该错误,参考网上各位大抄的大作如下:


方案四

如先输入mysql,成功启动后输入use mysql,出现如下错误:Access denied for user ‘’@‘localhost’ to database ‘mysql’ 还有,输mysql可以,输mysql -u root就出错了: Access denied for user ‘root’@‘localhost’ (using password: NO). The reason is: 是昨日更新ROOT密码时出错 update user set password = ‘123456’ where user =“root” //这样写是错的,密码其实不是123456 应该为update user set password = password (‘123456’) where user = “root” 具体操作步骤: 关闭mysql: # service mysqld stop 然后: # mysqld_safe --skip-grant-tables 启动mysql: # service mysqld start mysql -u root mysql> use mysql mysql> UPDATE user SET Password=PASSWORD(‘xxx’) WHERE user=‘root’; mysql> flush privileges; mysql>\q


按照各位大抄的步骤一步一步做,没有任何效果,仔细研究错误信息中的 user ‘’@‘localhost’ ,说明user表中的user=‘’的信息有误,然后执行UPDATE user SET Password=PASSWORD(’’) WHERE user=’’;

果断没有作用。

最后不允许匿名登录,执行以下语句

mysql> delete from user where user=’’;

mysql > flush privileges;

mysql> \q

#service mysqld restart

问题解决。

恢复mysql 中root 用户的bai所有权限
1.先进入管理员权限的dudos窗口
2.net stop mysql 停止mysql服务
3.输入 mysqld --skip-grant-tables
4.另起zhi一个cmd窗口,输入mysql -u root -p
5.提示输入密码时dao,直接回车跳过,此时已经进入mysql
6.然进入mysql数据库下面的user表,输入 UPDATE mysql.user SET Grant_priv=‘Y’, Super_priv=‘Y’ WHERE User=‘root’;
7.刷新缓冲区 FLUSH PRIVILEGES;
8.执行 GRANT ALL ON . TO ‘root’@‘localhost’;
9.查看localhost下的用户权限都为Y,select * from mysql.user\G
解决!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值