Я работаю над личным проектом, который включает в себя приложение Java, подключающееся к базе данных XAMPP SQL. Приложение прекрасно подключается к базе данных на том же компьютере, на котором находится база данных. Программа использует одноэлементный класс.
Код:
private Connector() {
String host = "jdbc:mysql://localhost/my_database";
String user = "root";
String pass = "";
try {
connection = DriverManager.getConnection(host, user, pass);
System.out.println("Connection success!");
} catch (SQLException ex) {
System.out.println("Connection failed!");
}
}
Я хотел сделать шаг вперед и иметь возможность поместить приложение на свой ноутбук и подключиться к базе данных на моем ПК. Я вошел в XAMPP и изменил файл "httpd-xampp.conf", чтобы он разрешал локальные подключения, и когда я зашел на свой ноутбук, я попытался открыть phpMyAdmin из браузера, и это сработало!
Теперь я поместил приложение на свой ноутбук, но вместо хоста:
String host = "jdbc:mysql://localhost/my_database";
Я нашел локальный IP-адрес моего компьютера, и на моем ноутбуке изменился хост:
String host = "jdbc:mysql://192.168.1.8/my_database";
Не удалось установить соединение, поэтому я попытался настроить другого пользователя, который позволяет подключаться к любому хосту и имеет полный доступ на всякий случай. Все еще та же ошибка происходит.
Я проверил свой брандмауэр, но не было записи, которая отключала бы соединение, но в любом случае я смог подключиться к phpMyAdmin через браузер через мой ноутбук.
Вот часть, которую я изменил в конфигурационном файле Xampp:
<Directory "N:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Require all granted
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
Вы можете попробовать перенаправить порт приложения/порта на ПК, просто чтобы быть уверенным, что это не брандмауэр, и я не вижу, что могло бы помешать соединению.
Вот ссылка на переадресацию портов в Windows, если вам это нужно.
Надеюсь это поможет