Соединение Java SQL не работает - PullRequest
0 голосов
/ 23 мая 2019

Когда я подключаюсь к своей базе данных MYSQL (размещенной на phpmyadmin в домене с хостингом, а не localhost), я получаю сообщение об ошибке, что мне полностью запрещен доступ к серверу.Что здесь происходит?Я не очень хорошо знаком с тем, как использовать методы этой библиотеки, и запутался.

Connection connection;
try 
{
   connection = 
  DriverManager.getConnection("jdbc:mysql://WEBSITENAME.com/DATABASENAME0", 
   "DATABASEUSERNAME", "DATABASEPASSWORD");
   Statement sql = connection.createStatement();
   ResultSet myRs = sql.executeQuery("SELECT * FROM table");

while(myRs.next()) 
{
  System.out.println(myRs.getString("column"));
}

} catch (SQLException e) 
{
   e.printStackTrace();
}

Предоставлена ​​следующая ошибка:

java.sql.SQLException: доступ запрещендля пользователя 'user' @ 'IP-адрес указан здесь (с использованием пароля: YES) на com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:129) на com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java!) в com.mysql.cj.jdbc.ConnectionImpl. (ConnectionImpl.java:455) в com.mysql.cj.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:240) в com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) в java.sql.DriverManager.getConnection (Неизвестный источник) в java.sql.DriverManager.getConnection (Неизвестный источник) в jDgmj8pWUnXVoHZk04z9.sqlConnect.updateCommandjxjjjvjjjjjjjjjjljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjljjjljjjljjjljjjljjjljjjjljjjjljjjjljjjjljjjjljjjljjjljjjjjjjjjjjnjjjnjjj (на кв.VoHZk04z9.Driver.main (Driver.java:10)

Ответы [ 3 ]

0 голосов
/ 23 мая 2019

Возможно, одной из проблем является сервер, проверьте, что пользователю разрешено подключаться извне localhost, или проверьте, разрешено ли вашему пользователю подключаться следующим образом: user @ IPAddress

0 голосов
/ 23 мая 2019

Общая проблема для размещенных служб, таких как размещенные базы данных / DBaaS в настоящее время.Многие хостинг-провайдеры по умолчанию используют DENY ALL и ожидают, что никакие соединения с БД не допускаются входящими с анонимных IP-адресов Интернета, иначе.что-либо вне (a) их платформы или (b) вне их подсети.

Если другие рекомендуемые тесты не работают (например, telnet), спросите вашего поставщика БД, поддерживают ли они белый список и как онипредоставить исключение.Обычно это делается с помощью системы билетов самообслуживания для многих хостинг-провайдеров.

Или вы можете совместно разместить свое приложение Java на том же хостинг-провайдере?как через базовую ВМ / экземпляр в той же подсети, что и экземпляр БД?

0 голосов
/ 23 мая 2019

У меня есть две идеи для этого:

  1. Обычно ваш MySQL запрещает соединения с другими хостами.Вы должны настроить это в файле конфигурации (см. здесь ).Если вы не можете получить доступ к файлу конфигурации, вам нужно будет спросить своего администратора.

  2. Дополнительно вам следует проверить, открыт ли хотя бы порт 3306 (порт по умолчанию MySQL для TCP-соединений).Если брандмауэр блокирует этот порт, вы не сможете подключиться.В Windows вы можете проверить это с помощью telnet (если он включен):

.

telnet WEBSITENAME.com 3306

Нет сообщения об ошибке (пустой cmd) означает, что соединение установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...