java使用jdbc连接数据库出现‘SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)’
修改指令:UPDATE USER SET HOST='%' WHERE USER='账户号';的服务占用,停掉这个服务,在开启 MySQL 服务,再次连接成功。%表示:不管任何ip地址都可以登录该账号。localhost:表示只能是本机登录。host:表示的是登录ip地址。在数据中使用该命令进行查看。
出现这种问题一般有以下几种原因造成:
1.有可能是连接数据库的账号密码错误,可以用其他方式先连接数据库,进行排查
2.编码问题,IDEA使用的是GBK编码,而数据库使用的是utf-8,所以要将IDEA的格式设置成utf8。
操作如下,在url地址库名后面加上如下:
?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
String url = "jdbc:mysql://localhost:3306/hsp_db02?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false";
3.在使用IDEA连接数据库,数据库中使用该账号必须在本机登录,而你用idea不是在本机,所以出现该问题
在数据中使用该命令进行查看
use mysql;
SELECT `host`, `user` FROM USER
host:表示的是登录ip地址。
localhost:表示只能是本机登录
%表示:不管任何ip地址都可以登录该账号
修改指令:UPDATE USER SET HOST='%' WHERE USER='账户号';
4.检查数据库端口号是否填写正确
数据库中查看:SHOW VARIABLES WHERE VARIABLE_NAME='port';
5.再看是不是有服务占用端口:发现是一个叫 mysqlzt的服务占用,停掉这个服务,在开启 MySQL 服务,再次连接成功。
根据服务 PID 查看端口:
netstat -ano
或者通过
(1) windows +R
(2) 输入services.msc 或者 菜单栏直接搜索:服务
查看属性可以知道,这是我之前下载的xmpp文件中自带的mysql,其端口号也为3306,这就是我们无法连接数据库的罪魁祸首
通过右键关闭其mysqlzt即可
更多推荐
所有评论(0)