Соединение 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) порт.