我在使用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");
,但它并没有改变结果。
答案 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有关。