Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试通过eclipse、java连接mysql数据库时拒绝访问_Java_Mysql_Eclipse - Fatal编程技术网

尝试通过eclipse、java连接mysql数据库时拒绝访问

尝试通过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

我正在尝试连接mysql数据库,但我得到了一个相同的错误:javax.servlet.ServletException:java.sql.SQLException:user'user@'localhost(使用密码:YES)的访问被拒绝

我已经尝试了以下解决方案:
  • 检查了我的用户名和密码。MySQL连接是通过username=user1、password=123建立的。当我连接到数据库时,我在代码中使用同样的方法:
    Class.forName(“com.mysql.jdbc.Driver”).newInstance();
    Connection con=DriverManager.getConnection(
    “jdbc:mysql://localhost:3306/employee“,”用户1“,”123“
  • 以以下方式向user1授予权限:
    授予*上的所有权限*到“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';