Соединение Java с базой данных MySQL через HTTP или HTTPS

Я работаю над небольшим Java-проектом, и у меня есть проблема. Mysql-протокол заблокирован брандмауэром, и единственные порты, которые я могу использовать, это 80 или 443. Есть ли способ подключиться к моей базе данных через эти порты? На самом деле я использую библиотеку mysql-connector для подключения к Java.

3 ответа

Я рекомендую вам настроить SSH-сервер на порт 443 и использовать его для настройки трафика на вашу базу данных и любой другой сервис. Вот как вы можете туннелировать трафик с вашего локального компьютера на удаленную базу данных:

ssh -L 9000:localhost:3307 user@1.2.3.4 -p 443

Теперь вы можете подключиться к базе данных, как будто она работает локально на localhost:9000, Весь ваш трафик на SSH сервер зашифрован. Проверьте эту статью для других примеров.

Вы можете также проверить проект долота, однако я не очень знаком с ним.

Может быть, вы можете изменить порт MySQL на 443;

Но я думаю, что это плохо...

Вы можете изменить порт MySQL. изменить порт в /etc/mysql/my.cnf

пример:

cp /etc/mysql/my.cnf /etc/mysql/my-3307.cnf
//edit my-3307.cnf, for example
port = 3307
basedir = /var/lib/mysql-3307
datadir = /var/lib/mysql-3307
//end-edit
mysql_upgrade --defaults-file=/etc/mysql/my-3307.cnf #checks the syntax and creates the dirs you need.
#start mysqld
mysqld --defaults-file=/etc/mysql/my-3307.cnf

источник: http://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html

PS: 443 порт по умолчанию https. Не рекомендуется использовать этот и 80(http) порт.

Другие вопросы по тегам