У меня есть веб-сайт https://www.riyajobcard.herokuapp.com, работающий на онлайн-сервере. Я хочу, чтобы этот сайт был в сети, а его база данных работала на локальном хосте моего компьютера. Это возможно?
Мой код файла connectionDB.java выглядит так:
package modal;
import java.sql.*;
public class ConnectionDb {
public static Connection getConnection(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/jcps","root","");
}catch(Exception e){System.out.println(e);}
return con;
}
}
Я ожидаю, что подключение живого веб-сайта к локальной базе данных должно быть сделано успешно.
Когда вы определяете соединение с localhost
, оно разрешается на сервер, на котором размещено приложение. Не рекомендуется запускать приложение на другом сервере с базой данных на локальном компьютере, так как оно может потерять соединение, когда ваш компьютер либо выключится, либо выйдет в автономный режим.
Но даже если вы должны это сделать, вам нужно будет указать IP-адрес вашего компьютера и разрешить доступ через брандмауэр для доступа к вашей базе данных. По сути, вы должны заменить localhost
IP-адресом вашего компьютера, на котором работает база данных.
localhost
не известен удаленным компьютерам и будет работать, только если ваш сайт находится на вашем (локальном) компьютере. Чтобы обеспечить доступ с удаленного компьютера к вашей локальной базе данных, вам необходимо предоставить удаленный доступ пользователю базы данных (root
), использовать ваш (текущий и, возможно, изменяющийся) публичный IP-адрес вместоlocalhost
, открыть порт 3306 брандмауэра и сопоставить запросы с этим порт в вашем роутере на локальный компьютер