尝试通过eclipse、java连接mysql数据库时拒绝访问
我正在尝试连接mysql数据库,但我得到了一个相同的错误:javax.servlet.ServletException:java.sql.SQLException:user'user@'localhost(使用密码:YES)的访问被拒绝 我已经尝试了以下解决方案:尝试通过eclipse、java连接mysql数据库时拒绝访问,java,mysql,eclipse,Java,Mysql,Eclipse,我正在尝试连接mysql数据库,但我得到了一个相同的错误:javax.servlet.ServletException:java.sql.SQLException:user'user@'localhost(使用密码:YES)的访问被拒绝 我已经尝试了以下解决方案: 检查了我的用户名和密码。MySQL连接是通过username=user1、password=123建立的。当我连接到数据库时,我在代码中使用同样的方法:Class.forName(“com.mysql.jdbc.Driver”).ne
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
Connection con=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/employee“,”用户1“,”123“代码>
授予*上的所有权限*到“user1”@“localhost”;
同花顺特权;
顺便说一句,当我尝试连接“root”@“localhost”时,我也遇到了同样的问题。
你知道为什么它仍然不起作用吗李>
MySQL JDBC只能通过TCP/IP(在Unix上,或在Windows上通过TCP/IP或命名管道)进行连接 MySQL JDBC驱动程序无法使用本地unix套接字建立连接 对于Unix上的MySQL,
localhost
具有我们可能期望的不同含义。它不是127.0.0.1 TCP/IP环回地址的主机名同义词。在Unix上,MySQL用户
'user1'@'localhost'
指定只能通过unix套接字文件进行连接的用户;无法通过TCP/IP连接到该用户
上面解释了MySQL拒绝来自JDBC的连接的原因:连接尝试失败,因为不存在匹配的用户 要创建从TCP/IP环回地址连接的MySQL用户,假设MySQL以
--skip name resolve
启动,而不以--skip networking
启动,我们可以将用户指定为:
'user'@'127.0.0.1'
该用户将允许从JDBC进行连接
(如果启用MySQL DNS名称解析,那么我们需要使用解析为环回地址的主机名;或者我们可以考虑为用户的主机名使用通配符'%'。 1) 转到mysql终端。2) mysql>使用mysql;3) mysql>选择用户,从用户中选择主机;4) 用户将主机设置为“%”,而不是本地主机
现在在连接中,而不是在localhost trip中指定服务器的ip地址希望这对您有所帮助。:) 您能够使用SQL客户端和提供的用户和密码连接到数据库吗?@ngueno当然,我已经通过MySQL Workbench检查了连接,输入username=user1和password=123尝试
DriverManager.getConnection(“jdbc:mysql://localhost:3306/employee?user=user1&password=123");
如果失败,请尝试不使用员工
数据库,只要本地主机:3306
@ngueno我就解决了问题。你的解决方案和有标记的答案都适合我的情况。非常感谢你!谢谢,现在我犯了这个错误:javax.servlet.ServletException:java.sql.SQLException:服务器时区值“RTZ 2(çèìá)”无法识别或表示多个时区。如果要利用时区支持,必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。这个问题怎么解决?我已经解决了!现在一切都对了)非常感谢你的帮助!为了修复新的错误,我在MySQL工作台中执行了以下命令:SET@@global.time_zone='+00:00';设置@@session.time_zone='+00:00';