Android – Conectarse a la base de datos mySQL a través de LAN sin usar un servidor web

Quiero tener varios clientes que se conectan a un servidor a través de LAN y acceder / modificar la base de datos mySQL en el servidor.

¿Cómo iba a hacer esto? ¿Pueden ustedes proporcionar algunos recursos / enlaces que podría investigar sobre el tema

Para responder a su pregunta, debería poder conectarse a una base de datos mysql añadiendo el controlador jdbc a su proyecto como un archivo jar en Android Studio.

Ahora, para una aplicación real que planea distribuir a miles de usuarios, hay problemas de seguridad, problemas de rendimiento y escalabilidad.

Temas de seguridad:

  1. Expone su base de datos directamente a Internet abriendo su puerto al acceso público para que las aplicaciones se conecten. Una aplicación web añade una capa en el medio, manteniendo el acceso a la base de datos dentro de la intranet.

  2. Expone directamente sus datos al público al proporcionar al menos una cuenta pública conocida por todos (supongo que esta sería la forma de acceso porque administrar una cuenta por usuario no sería realista). Una aplicación web aísla la cuenta de usuario de las cuentas de base de datos.

  3. Al proporcionar acceso de esta manera, ya que los dispositivos móviles android pueden arraigarse, es posible que conceda acceso anónimo a sus datos.

Problemas de desempeño:

  1. Con una aplicación web en el medio, es la aplicación web la que administra las conexiones a la base de datos. Esto permite compartir conexiones entre diferentes usuarios frente a una conexión dedicada por usuario que tendría si los diferentes dispositivos estable conexiones separadas.

  2. Por la misma razón, no se puede aprovechar el agrupamiento de conexiones, lo que ahorra la posibilidad de establecer una conexión con la base de datos para cada solicitud entrante.

Problemas de escalabilidad:

  1. Dado que las conexiones no se comparten, el número de usuarios simultáneos se limitará al número de conexiones que puede abrir al mismo tiempo en la base de datos.

EDITAR 1

Estoy agregando una alternativa que pensé que implica el uso de una aplicación web, pero no se implementa mediante un servidor web. Es un framework NIO de Java que funciona por sí solo. Las limitaciones de esta solución es que necesitas acceso shell al servidor y java, que no es común en los hostings tradicionales. Realizar Pedido Netty .

Hay 2 maneras de cómo realizar su tarea. Puede agregar el controlador JDBC en android studio o implementar mejor una API REST que se conecte a su base de datos y todos los clientes android pueden enviar solicitudes HTTP al servidor y el servidor agregará la información para usted. Aquí puede implementar los métodos de creación, actualización y eliminación. Para las solicitudes HTTP, puede utilizar las bibliotecas Retrofit o Volley.

Si desea utilizar JDBC, echa un vistazo a la respuesta aquí Cómo Mysql JDBC Driver para Android Studio

Pero la solución mejor y más correcta para este tipo de problemas sería un servicio REST

A largo plazo, realmente necesita una aplicación "cliente" entre "usuarios" y la base de datos. Por lo general se hace a través de un servidor web, además de PHP / Java / VB / …. Sí, requiere que aprender otro idioma, pero eso no es algo que evitar en una aplicación seria.

El cliente puede ayudar (y lastima, si se hace adecuadamente) con la seguridad. El cliente puede aislar a los usuarios de los cambios en la base de datos, lo que eventualmente sucederá. El cliente debe "abstraer" la interfaz de la base de datos para que los usuarios no tienen que ser SQL-savvy. Etc.

Has instalado WAMP Server / XAMPP Server para mySQL Database Haz clic en el icono de WAMP y selecciona Apache, abre "httpd.conf" y encuentra la etiqueta comienza con

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

Y actualizar el código como se indica a continuación

<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>

Ahora cree las API REST en su servidor local, ya que puede usar PHP o lo que sea, y conecte la aplicación android con apis con la dirección IP asignada a su computadora en LAN.

No es una sola respuesta, sino un grupo de respuestas. En primer lugar, lo que necesita es el concepto de reenvío de datos a través de túneles introspectivos a través de la red. Al final del día, su base de datos siempre está escuchando en determinados puertos, que son locales a su máquina, lo que significa que sólo puede acceder y modificar el contenido de la base de datos. Por ejemplo, si accede a PHPMyAdmin, puede ir a la dirección de MySQL en su máquina local.

Lo que necesita hacer es hacer que el acceso público a Internet, lo que necesita es transmitir su existencia (dirección de protocolo de Internet) a la web. Por lo tanto, haciendo un hub público, en resumen, Local-túneles le permite compartir fácilmente un servicio web en su máquina de desarrollo local sin jugar con la configuración de DNS y firewall.

Mediante el tunelado de su máquina local a la web, cualquier persona con la dirección IP asignada puede acceder a su máquina (base de datos) sobre cualquier conexión, no sólo LAN o WI-FI. Hay muchas opciones para elegir, Hay ngrok, que expone un servidor local detrás de un NAT o firewall a Internet.

Las características son,

No reasignar constantemente su trabajo en progreso para obtener retroalimentación de los clientes. Ngrok crea una URL pública segura ( https://yourapp.ngrok.io ) en un servidor web local de su máquina. Iterar rápidamente con retroalimentación inmediata sin interrumpir el flujo.

Pruebe las aplicaciones para móviles en un entorno de desarrollo que se ejecuta en su equipo. Punto ngrok en su servidor dev local y luego configurar su aplicación para utilizar la URL ngrok. No cambiará, incluso cuando cambie de red.

Construir integraciones de gancho web puede ser un dolor: requiere una dirección pública y un montón de configurar para activar ganchos. Ahorre tiempo y frustración con ngrok. Inspeccione el tráfico HTTP que fluye sobre su túnel. A continuación, reproduzca las solicitudes de gancho web con un solo clic para iterar rápidamente mientras se mantiene en contexto.

Poseer sus datos. Anfitrión de servicios de cloud personal en su propia red privada. Ejecute correos electrónicos, sincronización de archivos y más seguridad en su hardware con encriptación completa de extremo a extremo.

Su realmente grande, sin embargo hay una nota lateral, porque este procedimiento abre su máquina local y lo hace accesible del IP en el Internet, muchos desafíos de seguridad diferentes se presentan, así que se recomienda solamente para los propósitos de la prueba con ningunos datos sensibles.

Espero que esto ayude:)

  • No se puede insertar correctamente caracteres griegos en la base de datos mysql
  • ¿Dónde ejecutar algoritmos complejos? Lado del servidor o lado del cliente?
  • Android devuelve cadena vacía HTTP
  • Cómo conectar Android con MySQL usando el controlador Mysql JDBC
  • Cómo hacer que la aplicación de Android se comunique con db de MySQL externo
  • NameValuePair Error "NameValuePair no se puede resolver con un tipo"
  • ¿Cómo devolver datos de php a eclipse?
  • Android realiza la solicitud de análisis al servidor
  • Convertir cadena al formato de sello de tiempo de MySQL en php
  • Subir una imagen de Android a la base de datos MySQL
  • SQLiteDatabase - ¿Cómo utilizar la cláusula where?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.