MySQL удаленное подключение через Java-программу - PullRequest
0 голосов
/ 06 марта 2019

Я разместил сервер Apache с xampp и создал локальную базу данных MYSQL на моем ПК1.

ПК1 ПОДКЛЮЧЕН К СЕТИ1.

Я разработал простую Java-программу, которая подключается к базе данных следующим образом:

static final String USERNAME="[myusername]";
static final String PASSWORD="[password]";
static final String CONN_STRING="jdbc:mysql://[myIP]:3306/[database_name]";

con=DriverManager.getConnection(CONN_STRING , USERNAME, PASSWORD);

Это работает абсолютно нормально на моем ПК1, хотя я изменил ссылку с моим IP, а не с "localhost".

Сработало после выполнения этой команды в базе данных:

GRANT ALL PRIVILEGES ON *.* TO [username]@[myIP] IDENTIFIED BY '[password]' WITH GRANT OPTION

Так что я пытаюсь сделать то же самое с моим PC2, который также хранит эту программу JAVA, но она подключена к другой сети - NETWORK2. Возможно ли это - подключить ПК2 из внешней сети к базе данных MySQL, размещенной на ПК1, через мою программу JAVA?

Ответы [ 3 ]

0 голосов
/ 06 марта 2019

Вам необходимо обновить bind-address с локального хоста на IP вашего сервера MySQL.Найдите файл mysql conf и отредактируйте:

Расположение файла mysql conf будет /etc/my.cnf или /etc/mysql/my.cnf или /usr/local/mysql/etc/my.cnf

bind-address            = <IP address where MySql is running>

Также убедитесь, что порт 3306 от mysql-Серверный компьютер открыт и доступен с другого ПК.Затем добавьте необходимые привилегии.

0 голосов
/ 06 марта 2019

Да, вы можете сделать это, подключив оба компьютера в одной локальной сети. После этого проверьте IP-адрес компьютера, на котором установлен mysql. Вы можете узнать это, просто набрав на терминале команду ifconfig (linux) / ipcofing (window). Убедитесь, что ваш локальный IP-адрес (отображается как 192.168.1.144) не является публичным.

Используйте этот IP-адрес для привязки в моем файле /usr/local/mysql/etc/my.cnf, а также используйте этот IP-адрес в вашей Java-программе. Ваш код будет успешно выполнен.

0 голосов
/ 06 марта 2019

Конечно, а почему нет? Вам просто нужно убедиться, что ваш PC1 доступен из другой сети и что необходимые порты (3306) открыты.

Вы можете просто пропинговать PC1 с PC2, чтобы проверить, возможно ли это.

...