Проверка подключения к MySQL (Java)

117
21 января 2020, 21:10

Занимаюсь разработкой собственной мини-утилиты для работы с MySQL.
Как я могу проверить подключение к указанному хосту (по логину и паролю) без указания* базы данных, как, например, это реализовано в phpMyAdmin... Ибо большинство абстракций подключения к MySQL требуют соответственную БД для работы (в частности, MysqlDataSource, в моём случае)...

Заранее спасибо)

Answer 1

Без указания базы вряд ли получится. Но в MySql есть тестовая база test. Можно подключиться к ней и сделать тестовый запрос, т.е. select 1. Примерно так:

    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "testUser";
    String password = "testPasssword";
    try (Connection conn = DriverManager.getConnection(url, user, password);
         Statement st = conn.createStatement();) {
        st.execute("select 1");
    } catch (SQLException e) {
        //обработка ошибки
        //можно делать дополнительную проверку через
        String sqlState = e.getSQLState();
        //sqlState.equals("...")
    }

При неправильном юзере/пароле свалится исключение. К тому же можно дополнительно спарсить sqlState из ошибки. Однако стоит учитывать, что администратор БД может запретить возвращать ошибки вида "правильный логин, но неправильный пароль" из-за ограничений безопасности (они будут указываться просто как неправильный логин или пароль).

READ ALSO
Подзапрос на java к таблице

Подзапрос на java к таблице

Всем приветПодскажите как написать подзапрос по выборке из таблицы?

120
После добавления maven в текущий проект не запускает java класс

После добавления maven в текущий проект не запускает java класс

До добавления maven у меня был один java class Main, после добавления его местоположение было в srcmaven создал структуру проекта и на сколько я понимаю...

135
Переменные, static, глобальные

Переменные, static, глобальные

Переменные экземпляра, объявленные как static, по существу, являются глобальными

119
Перевести время видео youtube?

Перевести время видео youtube?

Получил время видео youtube, через Json PT24M30S, можно как нибудить перевести, это время в секунды?

127