День добрый. Я пытаюсь через Intelij Idea подключиться к бд MySql, но выдает только огромную тучу красного текста на консоль. Поиски в инете ничего не дали. Изюминка в том, что у меня 32-битная винда, а стандартный сервер mysql поддерживает только 64-битную ОС, но я вроде как скачал с офф сайта модифицированную версию на 32-бит. Может это как-то повлияло. Еще версия сервера 5.1.45, а MySql Workbench - 6.1.7
import java.sql.*;
public class Main {
public static void main(String[] arg){
final String db_url="jdbc:mysql://localhost:3306/test1?useSSL=false";
final String db_user="root";
final String db_password="1234";
final String db_driver="com.mysql.cj.jdbc.Driver";
try{
Class.forName(db_driver);
} catch(ClassNotFoundException e){
e.printStackTrace();
}
try(Connection conn = DriverManager.getConnection(db_url, db_user, db_password)){
Statement st = conn.createStatement();
st.execute("select * from a");
ResultSet rs = st.getResultSet();
while(rs.next()){
System.out.println(rs.getString(2));
}
System.out.println("Prepared statement");
PreparedStatement ps = conn.prepareStatement("select * from a where a.key = ?");
ps.setInt(1, 1);
rs = ps.getResultSet();
ps.executeQuery();
while(rs.next()){
}
} catch(SQLException e){
e.printStackTrace();
}
}
}
На подключении в последнем try выдает исключение:
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:108)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at Module_3.Labs.Labs_3.Main.main(Main.java:16)
Caused by: com.mysql.cj.exceptions.UnableToConnectException: CLIENT_PLUGIN_AUTH is required
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:83)
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:220)
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1411)
at com.mysql.cj.NativeSession.connect(NativeSession.java:165)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:982)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)
... 6 more
На вашем сервере установлен способ аутентификации, который вы не соблюдаете.
Почитайте документацию
Если не хотите заморачиваться возьмите старую версию драйвера, которая поддерживает текстовую авторизацию - вам нужен пакет
com.mysql.jdbc.Driver
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите, как сделать игровое поле шире экрана устройства? Чтобы можно было сдвигать, например комнату, видеть и взаимодействовать с объектами...
В моем тестовом приложении настроена аутентификация через фильтрыПри первом запуске программы, нужно вводить дважды логин и пароль, потому...