2017-02-12 18 views
-1

Я изучаю идею подключения веб-приложения на стороне клиента непосредственно к серверу mysql.Существуют ли какие-либо технические ограничения для подключения javascript на стороне клиента (браузера) к удаленному серверу mysql?

Я не могу использовать бэкэнд-приложение в качестве прокси-сервера, и я не могу использовать mysql http-плагин.

Из краткого исследования в Интернете, похоже, что общее соглашение заключается в том, что это невозможно, или его не следует пытаться.

Существуют ли технологические ограничения для этого? MySql прослушивает сетевой порт и не заботится о том, какой клиент подключается к нему. Почему клиент не может быть написан в чистом javascript, который может работать в браузере? Могу ли я написать код javascript, который подключается к сокету TCP и отправляет ему данные как любые другие mysql gui?

Просто интересно, если я должен исследовать эту идею дальше?

+2

Если вы как-то сделали эту работу (невозможно в любом современном браузере по соображениям безопасности, что позволяет подключаться к клиентским клиентским подключениям к произвольным IP-адресам и портам, чтобы представить себе), все ваши клиенты будут иметь учетные данные для чтения/записи вашей базы данных по своему усмотрению. – CollinD

+0

Также почему у вас нет возможности использовать стороннюю программу на стороне сервера? Наверняка вы могли бы разместить Java или PHP webapp в облаке где-нибудь? –

+0

@TimBiegeleisen, у меня есть клиент, у которого есть машина в интранете компании без доступа к Интернету. Это должно быть то, что работает на его машине. Он хочет, чтобы небольшая привязка, которая будет подключаться к mysql, выполняет некоторые запросы и возвращает результаты. Это действительно простой проект, поэтому я думал о настольном приложении в Qt, но я не знаком с Qt, поэтому я изучал возможность сделать это как веб-приложение, которое можно вызвать, дважды щелкнув файл HTML. Я мог бы установить XAMP на его машине, но это было бы усложнением. –

ответ

1

Вы не можете. MySQL принимает только соединения от клиентов, говорящих на сетевом протоколе MySQL, а Javascript, работающий в веб-браузере, может выполнять только HTTP-соединения. (Если вам интересно о WebSockets, это подмножество HTTP - они не могут использоваться для создания произвольных сетевых подключений.)

В любом случае, если вы просто хотите хранить данные локально в сети Javascript приложение, вам не нужен MySQL. Вы можете хранить данные непосредственно в браузере, используя IndexedDB API.

1

Вы можете использовать Electron для создания настольных приложений в JavaScript/HTML/CSS: http://electron.atom.io

Затем использовать родной MySQL node.js модуля от НОГО для подключения к серверу, а после требований от Electron для использования собственных модулей узлов: http://electron.atom.io/docs/tutorial/using-native-node-modules/