Я пытаюсь подключить свой CratedB (работая локально) с Java, используя JDBC. < /p>
public class Main {
private static String connectionURL = "jdbc:postgresql://localhost:5432/";
public static void main(String[] args) throws SQLException {
Properties props = new Properties();
props.setProperty("user", "crate");
Connection sqlConnection = DriverManager.getConnection(connectionURL, props);
if(!sqlConnection.isClosed()) {
System.out.println("Connection is open!");
} else {
System.out.println("Connection is closed!");
}
}
}
< /code>
Зависимости, которые я использую для этого проекта: < /p>
org.postgresql
postgresql
LATEST
com.beust
jcommander
1.82
< /code>
Это мой текущий основной класс и достаточно просто. У Cratedb SU нет пароля (как указано в документации) и не должен требовать его в соответствии с настройками моей автозаправочной системы в crate.yml: d < /p>
auth:
host_based:
enabled: true
config:
0:
user: crate
address: _local_
method: trust
99:
method: password
< /code>
Пока я пытаюсь запустить свой основной метод, я получаю следующую ошибку: < /p>
Exception in thread "main" org.postgresql.util.PSQLException: The server requested SCRAM-based authentication, but no password was provided.
at org.postgresql.core.v3.ConnectionFactoryImpl.lambda$doAuthentication$5(ConnectionFactoryImpl.java:848)
at org.postgresql.core.v3.AuthenticationPluginManager.withPassword(AuthenticationPluginManager.java:82)
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:845)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:213)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:268)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:273)
at org.postgresql.Driver.makeConnection(Driver.java:446)
at org.postgresql.Driver.connect(Driver.java:298)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:191)
at src.main.java.com.XXXX.Main.main(Main.java:17)
< /code>
Если я добавлю свойство пароля, я также получаю ошибку, что пароль SU пуст и что аутентификация не удалась. (И невозможно установить пароль для суперпользователя CratedB) < /p>
Я попытался добавить нового пользователя (администратора) и дать ему пароль, а также предоставить все привилегии, но это также не удается.
io.crate
crate-jdbc
2.7.0
com.beust
jcommander
1.82
< /code>
Но я получаю ошибку, которая даже более странная: < /p>
public class Main {
private static String connectionURL = "jdbc:crate://localhost:5432/";
public static void main(String[] args) throws SQLException {
Properties props = new Properties();
props.setProperty("user", "crate");
Connection sqlConnection = DriverManager.getConnection(connectionURL, props);
if(!sqlConnection.isClosed()) {
System.out.println("Connection is open!");
} else {
System.out.println("Connection is closed!");
}
}
}
< /code>
Ошибка, которую я получаю: < /p>
Exception in thread "main" io.crate.shade.org.postgresql.util.PSQLException: Etwas Ungewöhnliches ist passiert, das den Treiber fehlschlagen ließ. Bitte teilen Sie diesen Fehler mit.
at io.crate.shade.org.postgresql.Driver.connect(Driver.java:265)
at io.crate.client.jdbc.CrateDriver.connect(CrateDriver.java:65)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:191)
at src.main.java.com.XXXX.Main.main(Main.java:17)
Caused by: java.lang.IllegalArgumentException: Null value for 'password'
at com.ongres.scram.common.util.Preconditions.checkNotNull(Preconditions.java:41)
at com.ongres.scram.common.util.Preconditions.checkNotEmpty(Preconditions.java:55)
at com.ongres.scram.client.ScramSession$ServerFirstProcessor.clientFinalProcessor(ScramSession.java:130)
at io.crate.shade.org.postgresql.jre8.sasl.ScramAuthenticator.processServerFirstMessage(ScramAuthenticator.java:131)
at io.crate.shade.org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:663)
at io.crate.shade.org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:141)
at io.crate.shade.org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
at io.crate.shade.org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at io.crate.shade.org.postgresql.jdbc.PgConnection.(PgConnection.java:206)
at io.crate.shade.org.postgresql.Driver.makeConnection(Driver.java:442)
at io.crate.shade.org.postgresql.Driver.connect(Driver.java:244)
... 4 more
< /code>
Поэтому я хотел бы придерживаться драйвера PostgreSQL вместо предоставленного драйвера crate.io. Из моей программы, так что я знаю, что мой код Java Code подключается с драйвером JDBC.
Подробнее здесь: https://stackoverflow.com/questions/795 ... dbc-driver
Аутентификация для Cratedb Su Crate не удалась с использованием CratedB 5.10.3 с драйвером JDBC ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение