gpt4 book ai didi

java - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES )

转载 作者:可可西里 更新时间:2023-11-01 07:09:04 24 4
gpt4 key购买 nike

我想连接我的本地 MYSQL 数据库,它与 XAMP 服务器一起安装。我创建了一个新用户,即“NewUser”,其密码是“password”。我已将所有权限授予此用户。

我编写了使用用户“root”(该用户没有密码)连接数据库的代码。它已连接。像下面这样..

return DriverManager.getConnection("jdbc:MySql://localhost/database_name","root","");

现在我编写了代码来连接另一个用户的相同数据库,即“NewUser”及其密码“password”

return DriverManager.getConnection("jdbc:MySql://localhost/database_name","NewUser","password");

但它没有连接。控制台中的错误是

java.sql.SQLException: Access denied for user 'NewUser'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.GeneratedConstructorAccessor207.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.createConnection(JDBCConnection.java:214)
at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:105)
at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:73)
at org.eclipse.datatools.enablement.internal.mysql.connection.JDBCMySQLConnectionFactory.createConnection(JDBCMySQLConnectionFactory.java:28)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)
at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:59)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

我在向该用户提供权限时给出了主机类型,如“任何主机”即“%”。

如果我将其更改为“localhost”或“127.0.0.1”,它会起作用。

那么我怎样才能将我的数据库与“anyhost”权限一起使用给特定用户,如“NewUser”。

如果我在这里成功,那么我就成功连接到客户端实时数据库..

感谢所有人,请让我离开这个......

最佳答案

由于第一个指定的代码有效并且还基于报告的跟踪,我很确定问题出在数据库上,而不是代码语法上。

基于 Mysql 版本,请尝试设置权限而不指定任何主机 (%) 作为基于 Mysql documentation ,

The simple form user_name is a synonym for user_name@'%'

在使用 FLUSH PRIVILEGES;

后立即刷新权限

为了确保一切正确,还要运行一个SHOW GRANTS FOR NewUser; 并检查 NewUser 是否出现在具有相应权限的列表中。

关于java - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com