Итак, я написал JApplet, который подключается к серверу MySQL и выполняет некоторые функции.
Когда я тестирую его в Eclipse, он работает просто отлично. У меня есть IP-адрес, имя базы данных, имя пользователя (root) и пароль, жестко запрограммированный в программе на данный момент.
Если у меня есть IP-адрес как localhost, или 127.0.0.1 (то же самое, но да), или 192.168.x.x (локальный адрес моего компьютера), JApplet при запуске из Eclipse подключится к серверу MySQL без проблем. Кроме того, если я открою другой терминал и войду в MySQL таким образом, это также будет работать.
Однако, если я создаю файл с использованием Eclipse, включаю драйвер mysql в тег апплета HTML и запускаю его через веб-браузер на той же машине, он не работает.
Вот тег HTML, который я использую:
<applet code="mysqlApp.MysqlInterface.class"
archive="LoginDemo.jar, mysql-connector-java-5.1.18-bin.jar"
height="150" width="450">
Your browser does not support the <code>applet</code> tag.
</applet>
Я пробовал это в Firefox 10. * с портом 3306, перенаправленным на мой маршрутизатор, и мой программный брандмауэр выключен. Кроме того, сервер MySQL привязан к 0.0.0.0 (он принимает попытки подключения на всех интерфейсах), и TCP / IP включен (опция пропуска сети не используется). Я получаю диалоговое окно с сообщением о невозможности установить соединение SQL (что я и запрограммировал), и я получаю следующее исключение в консоли Java:
SQLException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver
has not received any packets from the server.
SQLState: 08S01
VendorError: 0
Я также попробовал это сделать в последней версии Internet Explorer для Windows 7 x64, и когда я нажимаю на кнопки, которые должны подключить его к серверу, веб-страница зависает.
Ничего не выводится на консоль, где работает mysqld (я запустил его с помощью терминала администратора, используя mysqld --console)
У кого-нибудь есть идеи? Я искал решение в течение нескольких дней, но все, что мне кажется, что оно может работать, содержит одну или две маленькие детали, которые делают его неприменимым к моей проблеме.
Да, я знаю, что мне не нужно, чтобы апплет связывался напрямую с базой данных, если это будет использоваться в рабочем коде (серьезная проблема безопасности), но я нахожусь на ранних этапах этого и пытаюсь понять это в целях тестирования.
Спасибо.