android – 通过局域网连接到mySQL数据库,而不使用networking服务器

我想要有多个客户端通过LAN连接到服务器,并访问/修改服务器中的mySQL数据库。

我怎么去做这个? 你们可以提供一些资源/链接,我可以研究这个话题

Solutions Collecting From Web of "android – 通过局域网连接到mySQL数据库,而不使用networking服务器"

要回答你的问题,你应该可以连接到一个mysql数据库,通过在你的项目中添加jdbc驱动作为一个jar文件在Android Studio中。

现在想要一个真正的应用程序,您计划分发给数以千计的用户有安全问题,性能问题和可伸缩性问题。

安全问题:

  1. 将数据库直接打开到互联网,方法是打开其端口以公开访问应用程序以进行连接。 Web应用程序在中间添加了一个图层,保持Intranet内的数据库访问。

  2. 通过至less提供一个所有人都知道的公共账户(我认为这将是访问的方式,因为pipe理每个用户的一个账户将是不现实的),您直接向公众公开您的数据。 Web应用程序将用户帐户与数据库帐户隔离开来。

  3. 通过这种方式提供访问权限,作为Android移动设备可以扎根,您可能会授予匿名访问您的数据。

性能问题:

  1. 中间有一个Web应用程序,它是pipe理与数据库连接的Web应用程序。 这使得不同用户之间的共享连接与每个用户的一个专用连接将会具有不同的设备可分离的连接。

  2. 出于同样的原因,您不能利用连接池,这可以节省为每个传入请求build立与数据库的连接。

可伸缩性问题:

  1. 由于连接不共享,并发用户数将被绑定到您可以同时打开到数据库的连接数。

编辑1

我正在添加一个我认为涉及使用Web应用程序的替代scheme,但未使用Web服务器实现。 这是一个运行在自己的Java NIO框架。 这个解决scheme的局限性是你需要对服务器和java的shell访问,这在传统的托pipe中是不常见的。 结帐Netty 。

有两种方法可以完成你的任务。 您可以在android studio中添加JDBC驱动程序,或者更好地实现连接到数据库的REST API,所有Android客户端都可以向服务器发送HTTP请求,服务器将为您添加信息。 在这里你可以实现创build,更新,删除方法。 对于HTTP请求,您可以使用Retrofit或Volley库。

如果你想使用JDBC,请在这里查看答案如何将Mysql JDBC驱动程序发送到android studio

但是对于这种types的问题,最好和最正确的解决scheme是REST服务

从长远来看,您确实需要“用户”和数据库之间的“客户端”应用程序。 它通常是通过一个networking服务器,加上PHP / Java / VB / ….是的,它需要你学习另一种语言,但是这是不是在一个严重的应用程序要避免的东西。

客户可以在安全的情况下帮助(如果充分完成,则会受到伤害)。 客户端可以将用户从数据库更改隔离,最终会发生。 客户端应该将接口“抽象”到数据库中,以便用户不必是SQL精明的。 等等。

您可能已经安装了用于mySQL数据库的WAMP服务器/ XAMPP服务器点击WAMP图标并selectApache,打开“httpd.conf”并查找标签以

<Directory "c:/wamp/www"> ... </Directory>

并更新代码如下

<Directory "c:/wamp/www"> AllowOverride All Require all granted Order Deny,Allow Deny from none Allow from all Allow from 127.0.0.1 Allow from ::1 Allow from localhost </Directory>

现在在你的本地服务器上创buildREST API,就像你可以使用PHP或者其他东西一样,然后将安卓应用程序与带有指定IP地址的apis连接到局域网中的计算机上。

这不是一个单一的答案,而是一组答案。 首先你需要的是通过networking上的内省隧道进行数据转发的概念。 在一天结束的时候,你的数据库总是监听你的机器本地的某个端口,这意味着只有你可以访问和修改数据库的内容。 例如,如果您访问PHPMyAdmin,则可以在本地机器上使用MySQL地址。

你需要做的是将访问公开到互联网上,你需要的是把你的存在(互联网协议地址)广播到网上。 因此,build立一个公共中心,简而言之,本地隧道允许您在本地开发机器上轻松地共享Web服务,而不会混淆DNS和防火墙设置。

通过将本地计算机隧道传输到Web,任何具有分配的IP地址的人都可以通过任何连接访问您的计算机(数据库),而不仅仅是LAN或WI-FI。 有很多select可供select,有ngrok,它将本地服务器暴露在NAT或防火墙后面的互联网。

特点是,

不要经常重新部署您正在进行的工作以获得客户的反馈。 ngrok在您的机器上创build一个安全的公共URL( https://yourapp.ngrok.io )到本地的networking服务器。 快速迭代,立即反馈而不中断stream程。

根据您的计算机上运行的开发后端testing移动应用程序。 在您的本地开发服务器上点ngrok,然后configuration您的应用程序使用ngrok URL。 即使您更换networking,它也不会改变。

构buildWeb钩子集成可能是一件痛苦的事情:它需要一个公共地址和很多设置来触发钩子。 节省自己的时间,并与ngrok沮丧。 检查通过隧道的HTTPstream量。 然后,只需点击一下即可重播Web钩子请求,并在上下文中快速迭代。

拥有你的数据。 在您自己的专用networking上托pipe个人云服务。 通过全面的端到端encryption,在您的硬件上运行networking邮件,文件同步和更安全的操作。

它真的很棒,不过有一个方面的说明,因为这个过程打开你的本地机器,并使其可以在互联网上访问,出现了许多不同的安全挑战,所以只推荐用于没有敏感数据的testing目的。

希望这可以帮助:)