Maven

时间:2016-10-28 10:42:24

标签: java mysql jdbc

我在使用JDBC连接到数据库时遇到问题。连接时出现以下错误:CLIENT_PLUGIN_AUTH is required

这是我的代码:

private void connect() {
  try {
    connection = DriverManager.getConnection("jdbc:mysql://"+url+":"+port+"/"+database, username, password);
    System.out.println(Messages.MYSQL_CONNECT_SUCCESS.toString());
   }
   catch(Exception e) {
     System.out.println(Messages.MYSQL_CONNECT_FAIL.toString()+e.getMessage());
   }
 }

我的连接字符串错了吗?这是我添加到我的Maven依赖项中的内容:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>6.0.5</version>
</dependency>

我在另一个不使用Maven的项目中使用此代码(具有不同的消息),并且它工作正常。凭证有效。我试图添加Class.forName("com.mysql.jdbc.Driver");,但它并没有改变结果。

1 个答案:

答案 0 :(得分:2)

用以下内容替换您的网址并尝试

class Sound implements Playable {

    private final Path wavPath;
    private final CyclicBarrier barrier = new CyclicBarrier(2);

    Sound(final Path wavPath) {

        this.wavPath = wavPath;
    }

    @Override
    public void play() throws LineUnavailableException, IOException, UnsupportedAudioFileException {

        try (final AudioInputStream audioIn = AudioSystem.getAudioInputStream(wavPath.toFile());
             final Clip clip = AudioSystem.getClip()) {

            listenForEndOf(clip);
            clip.open(audioIn);
            clip.start();
            waitForSoundEnd();
        }
    }

    private void listenForEndOf(final Clip clip) {

        clip.addLineListener(event -> {
            if (event.getType() == LineEvent.Type.STOP) waitOnBarrier();
        });
    }

    private void waitOnBarrier() {

        try {

            barrier.await();
        } catch (final InterruptedException ignored) {
        } catch (final BrokenBarrierException e) {

            throw new RuntimeException(e);
        }
    }

    private void waitForSoundEnd() {

        waitOnBarrier();
    }
}

这与SSL有关。