是否有任何技术限制连接客户端(浏览器)JavaScript到远程MySQL服务器?

是否有任何技术限制连接客户端(浏览器)JavaScript到远程MySQL服务器?

问题描述:

我探索了将客户端Web应用程序直接连接到MySQL服务器的想法。是否有任何技术限制连接客户端(浏览器)JavaScript到远程MySQL服务器?

我不能使用后端Web应用程序作为代理,并且我不能使用mysql http插件。

从网上的一个简短的研究,似乎一般的协议是,它不能做或不应该尝试。

这是否有任何技术限制? MySql正在侦听网络端口,并且不应该关心连接到哪种客户端。为什么客户端不能用可以在浏览器上运行的纯JavaScript编写?我可以编写连接到TCP套接字的JavaScript代码,并将数据发送给它作为任何其他MySQL的GUI?

只是有兴趣,如果我应该进一步探索这个想法?

+2

如果您以某种方式做出这项工作(出于安全原因(允许客户端连接到任意IP和端口是不可想象的任何现代浏览器是想象中的噩梦),所有客户端将拥有凭据可随意读取/写入数据库。 – CollinD

+0

另外为什么你没有能力使用后端服务器端程序?当然,你可以在云中托管一个Java或PHP webapp吗? –

+0

@TimBiegeleisen,我有一个客户端,在公司内部网中没有访问互联网的机器。它必须是在他的机器上运行的东西。他想要一个连接到mysql执行一些查询并获得结果的小应用程序。这真的是一个简单的项目,所以我在Qt中想到了一个桌面应用程序,但我对Qt并不熟悉,所以我正在探索将它作为可通过双击HTML文件调用的Web应用程序的可能性。我可以在他的机器上安装XAMP,但这会很复杂。 –

你不能。 MySQL只接受来自客户端的连接,说出MySQL网络协议,并且在Web浏览器中运行的Javascript只能进行HTTP连接。 (如果您想知道WebSockets,那些是HTTP的一个子集 - 它们不能用于建立任意的网络连接。)

在任何情况下,如果您只是想要在Javascript web中本地存储数据应用程序,你不需要MySQL。您可以使用IndexedDB API直接在浏览器中存储数据。

您可以使用电子创建在Javascript/HTML/CSS一个桌面应用程序: http://electron.atom.io

然后,使用本机的mysql Node.js的模块从NPM连接到服务器,而从之后的电子要求对于使用本地节点模块: http://electron.atom.io/docs/tutorial/using-native-node-modules/