【问题标题】:java.sql.SQLException: Access denied for user 'wineship'@'localhost' (using password: YES)java.sql.SQLException:用户'wineship'@'localhost'的访问被拒绝(使用密码:是)
【发布时间】:2017-07-07 13:44:36
【问题描述】:

我搜索了类似的问题来寻找解决我的问题的方法,因为很多人都和我有同样的问题。但是,没有任何解决方案有帮助,而且我仍然有相同的错误堆栈。

这是我启动连接的 java 代码。堆栈清楚地指向 conn=DriverManager.getConnection(...); 的行:

package com.wine.plugins.managers.models;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public abstract class DatabaseModel 
{
    protected static Connection conn = null;

    private static final String url = "jdbc:mysql://localhost/wineships?useSSL=false";
    private static final String username = "wineship";
    private static final String password = "password";

    public DatabaseModel()
    {
        try {
            if(conn == null)
            {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                conn = DriverManager.getConnection(url, username, password);
                if (conn != null) {
                    System.out.println("Connected to the database");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.exit(0);
        } catch (InstantiationException e) {
            e.printStackTrace();
            System.exit(0);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            System.exit(0);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(0);
        }
    }
}

这是堆栈:

[08:24:25 WARN]: java.sql.SQLException: Access denied for user 'wineship'@'localhost' (using password: YES)
[08:24:25 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
[08:24:25 WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
[08:24:25 WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
[08:24:25 WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
[08:24:25 WARN]:        at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710)
[08:24:25 WARN]:        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)
[08:24:25 WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2194)
[08:24:25 WARN]:        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
[08:24:25 WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
[08:24:25 WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
[08:24:25 WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[08:24:25 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[08:24:25 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[08:24:25 WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[08:24:25 WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[08:24:25 WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
[08:24:25 WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
[08:24:25 WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
[08:24:25 WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[08:24:25 WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:247)
[08:24:25 WARN]:        at com.wine.plugins.managers.models.DatabaseModel.<init>(DatabaseModel.java:21)
[08:24:25 WARN]:        at com.wine.plugins.managers.models.ValidBlocksDatabaseModel.<init>(ValidBlocksDatabaseModel.java:10)
[08:24:25 WARN]:        at com.wine.plugins.managers.BlockValidityManager.initialize(BlockValidityManager.java:16)
[08:24:25 WARN]:        at com.wine.plugins.WineShips.onEnable(WineShips.java:12)
[08:24:25 WARN]:        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
[08:24:25 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
[08:24:25 WARN]:        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:402)
[08:24:25 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:377)
[08:24:25 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:327)
[08:24:25 WARN]:        at net.minecraft.server.v1_12_R1.MinecraftServer.t(MinecraftServer.java:421)
[08:24:25 WARN]:        at net.minecraft.server.v1_12_R1.MinecraftServer.l(MinecraftServer.java:382)
[08:24:25 WARN]:        at net.minecraft.server.v1_12_R1.MinecraftServer.a(MinecraftServer.java:337)
[08:24:25 WARN]:        at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:272)
[08:24:25 WARN]:        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:544)
[08:24:25 WARN]:        at java.lang.Thread.run(Thread.java:748)

MySQL 服务器在 Linux 上的 Xampp 程序的 localhost:3306 上运行。该代码适用于将从 SQL 服务器请求数据的 minecraft 服务器。

【问题讨论】:

  • 你试过用 127.0.0.1 代替吗?
  • 确保您的用户 'wineship'@'localhost' 对您的数据库拥有必要的权限。
  • 也许您没有名为wineship 的用户和password 的密码。尝试使用root 作为用户和""(无密码只需打开和关闭双引号)作为密码。因为如果还没有配置你的用户名和密码,这些是默认的用户名和密码。

标签: java mysql minecraft


【解决方案1】:

我一直在修改 phpmyadmin,我发现输入地址而不是使用 '%' 解决了我的问题。我还将“localhost”更改为 127.0.0.1 @nigel ren

我的代码现在是:

private static final String url = "jdbc:mysql://127.0.0.1/wineships";
private static final String username = "wineship";
private static final String password = "password";

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 2014-09-10
    • 2012-08-08
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    相关资源
    最近更新 更多