Termux

Instalar MySQL (MariaDB) en Android con Termux

Instalar MySQL en Android

Los dispositivos móviles de Android no están diseñados para ser servidores (aunque algunos son potentes), sin embargo siempre es interesante ver cómo la tecnología avanza y día con día podemos hacer más cosas con nuestros teléfonos.

Hoy veremos cómo instalar el servidor de MySQL o MariaDB en Android, gracias a la aplicación de Termux. Para ello basta ejecutar unos simples comandos y listo, tendremos un servidor de base de datos de MySQL en nuestro Android; completamente funcional y listo para ejecutar consultas.

Si queremos ponerlo para producción, podemos hacerlo siempre y cuando configuremos la seguridad. En fin, no veremos temas más avanzados; sólo veremos cómo instalar mysql en Android.

Aquí usaremos MariaDB y MySQL como sinónimos; es decir, si ves que digo MariaDB no te confundas, me refiero a MySQL; y viceversa. Sé que realmente hay más diferencias sobre todo con las licencias, pero eso es otro tema y puedes buscarlo en Google si lo deseas.

Nota: haz click aquí si quieres ver cómo instalar MySQL en Windows 10.

Requisitos

Mientras puedas instalar Termux todo está bien, no hace falta que tu dispositivo esté rooteado. Me parece que esta APK funciona a partir de Android 6. Mira cómo se instala, configura y descarga aquí.

Una vez que la tengas ahora sí vamos allá.

Actualizar paquetes para instalar mysql

En tu aplicación de Termux ejecuta:

apt update

Y luego:

apt upgrade

En ambos casos, si te pregunta elige que sí, o sea, pon la letra y. Este paso es muy importante porque actualizará las librerías que son necesarias para instalar mysql en nuestro dispositivo móvil.

Instalar MariaDB en Android usando Termux

Muy bien, una vez que tienes tu sistema actualizado vamos a instalar el paquete de MariaDB. Para ello ejecuta:

pkg install mariadb

Si te pregunta, acepta todo escribiendo la letra y. Puede tardar un poco, depende de tu dispositivo así que sé paciente.

1 – Instalar el paquete de mariadb en Android usando termux

Listo, ya lo has instalado.

Al momento de instalarse debió darte instrucciones, en mi caso me indicó los usuarios, accesos y cómo iniciar el demonio. Por favor léelo minuciosamente pues esto puede cambiar entre versiones:

MariaDB instalado en Android – Instrucciones y usuarios

Por ejemplo, a mí me está indicando que para iniciar el servicio debo ejecutar algo como:

/data/data/com.termux/files/usr/bin/mysqld_safe --datadir='/data/data/com.termux/files/usr/var/lib/mysql'

Y también me está dando los usuarios y contraseñas, además de cómo iniciar MySQL al iniciar la aplicación.

Iniciando servidor de MariaDB

Entonces vamos a ejecutar el demonio de MySQL pero en segundo plano, así que el comando completo queda así:

/data/data/com.termux/files/usr/bin/mysqld_safe –datadir=’/data/data/com.termux/files/usr/var/lib/mysql’ 2>&1 &

Debe aparecer un mensaje que diga algo como “Starting mariadb daemon with databases from…”

Abrir MySQL

Ahora ya podemos abrir MySQL. Para ello ejecutamos:

mysql -u u0_a418@localhost -p

No olvides cambiar el usuario según te haya dicho el instalador de MariaDB (si no lo leíste, siempre puedes averiguar tu usuario ejecutando whoami, Who Am I)

Iniciando MySQL y entrando al gestor desde Android

Nos va a pedir la contraseña, en ese caso es una cadena en blanco así que simplemente presionamos Enter.

Y ya para probar, podemos ejecutar el comando show databases para que nos muestre las bases de datos existentes. Si eso funciona entonces ya podemos usar este gestor en nuestro Android.

Crear base de datos, tabla e insertar datos

Para que se vea bonito y para comprobar que esto sirve vamos a insertar algunos datos en nuestro servidor, solo ignora la primera línea de la siguiente imagen pues ya te enseñé a autenticarte anteriormente.

5 – Insertar datos y probar base de datos

Detener proceso de MySQL/MariaDB

Si quieres detener el proceso busca el ID de aquello que tenga la palabra “mysql” usando ps con grep; y luego mátalos usando kill -9 [ID], el -9 es para enviar la KILL SIGNAL.

Te lo explico con imágenes. Para buscar los ID de proceso ejecuta:

ps aux | grep mysql

Estamos pasando la salida de ps por una tubería hacia grep para que busque los que tengan mysql dentro.

Listar procesos de MySQL MariaDB en Android

Si te fijas son dos procesos con ID 15406 y 15488; el tercero (15706) es el de grep; ese no lo tomamos en cuenta. Recuerda que en tu caso esto va cambiar ya que el ID de proceso nunca es el mismo.

Cuando tengamos los procesos los matamos:

kill -9 15406

kill -9 15488

Si después listamos los procesos de nuevo ya no aparecen.

Detener servidor de MySQL

Para volver a iniciar el servidor ejecuta de nuevo los pasos que se mencionan antes de este apartado.

Opcional pero recomendado: asegurar MySQL

La instalación de MySQL ya funciona correctamente, y si solamente vamos a jugar con ella entonces no nos debe importar la seguridad. Pero en cambio, si quieres asegurarlo por costumbre o por buenas prácticas puedes hacerlo.

Para ello, ejecuta:

mysql_secure_installation

Lo cual te dará un asistente que te ayudará a asegurar tu instalación de MySQL: poner una contraseña, quitar privilegios de prueba, entre otros.

Notas y conclusiones

Ya tienes un servidor de MySQL instalado en tu Android. Es hora de probar algunos comandos básicos de este motor de bases de datos.

Por cierto, si reinicias tu teléfono el servidor se detendrá, basta con que vuelvas a ejecutar el demonio como vimos allá arriba.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Hola a todos, yo he instalado Mysql server (MariaDB) en termux y todo sin problemas, pero después de un tiempo, no he detectado porque pasa, pero cuando se carga el mysql (MariaDB) da un error "Missing FILE_CHECKPOINT" ya me ha pasado varias veces y he tenido que perder datos. Encontré que este error es cuando el sistema INNODB no ha podido encontrar el archivo de punto de control, pero no he encontrado como evitar este error y si en caso sucede como recuperar los datos en ese momento, ya que existen los archivos .FRM y .IBD, pero nada se puede hacer. Alguien que pueda ayudar en este tema, por favor. Saludos cordiales.

  • hola, gran tutorial,

    sabes como acceder a la web de configuración de Mariadb?

    como localhost/phpmyadmin
    o
    localhost/dastboard/
    ??

    no logro ejecutarlo

  • Gracias por el aporte, el problema es que despues de un tiempo ya no quiere funcionar el demonio de mysqld y aparecen estos errores, he buscado en foros pero no hay respuesta a esto en termux, si alguien conoce la solucion a este error seria de gran ayuda.

    2022-06-02 8:50:28 0 [Note] mysqld (server 10.6.7-MariaDB) starting as process 14851 ...
    2022-06-02 8:50:28 0 [Note] InnoDB: Compressed tables use zlib 1.2.12
    2022-06-02 8:50:28 0 [Note] InnoDB: Number of pools: 1
    2022-06-02 8:50:28 0 [Note] InnoDB: Using generic crc32 instructions
    2022-06-02 8:50:28 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
    2022-06-02 8:50:28 0 [Note] InnoDB: Completed initialization of buffer pool
    2022-06-02 8:50:28 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=218202,218202
    2022-06-02 8:50:28 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT at 218202 between the checkpoint 218202 and the end 222963.
    2022-06-02 8:50:28 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
    2022-06-02 8:50:28 0 [Note] InnoDB: Starting shutdown...
    2022-06-02 8:50:28 0 [ERROR] Plugin 'InnoDB' init function returned error.
    2022-06-02 8:50:28 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    2022-06-02 8:50:28 0 [Note] Plugin 'FEEDBACK' is disabled.
    2022-06-02 8:50:28 0 [ERROR] Unknown/unsupported storage engine: InnoDB
    2022-06-02 8:50:28 0 [ERROR] Aborting

  • como puedo iniciar automáticamente el servidor mariabd apache y php 7 cuando reinicio el teléfono?? o con un batch

  • Gracias he seguido tu tutorial y todo a funcionado perfectamente. Me Gustaria saber si sabes como instalar phpMyAdmin en mi android, despues de tener todas estas herramientas estaria de lujazo tener tambien el gestor grafico 100% funcional en mi tableta con android. De antemano agradezco tu respuesta !! Saludos.!!

    • Hola, buen día. Me parece que sí se puede, espero poder escribir el tutorial muy pronto; mientras tanto te invito a que me sigas en mis redes sociales y te suscribas a mi canal de YouTube
      Saludos

  • Intento conectarme desde una pc windows con mysql a mi base de datos que tengo en mi celular. Los dos se encuentran en una área local. Pero en la configuración del archivo my.cnf que tengo en mi android no aparece la opción de "bind address" los únicos "parámetros" por llamarlos de alguna manera son [client-server.] . Y a la hora de tratar de ingresar desde windows no me permite el acceso.

    • Ya he comprobado el problema que especificas y después de investigar un momento di con la solución; me pude conectar desde Windows a Android. Mañana por la tarde sale el tutorial; te invito a suscribirte para estar al tanto.
      Saludos.

  • Hola, que tal, tengo una duda. Resulta que he creado un usuario con privilegios, para que se conecte a mi base de datos remotamente. Pero al tratar de acceder desde otro dispositivo no me lo permite. Puesto que según yo necesito editar el archivo my.cnf para permitir el acceso remoto. Podrías echarme un cable ?

    • Hola. No entiendo si el servidor es tu dispositivo Android o un servidor remoto.
      Si es tu dispositivo Android: ¿cuál es tu dirección IP de internet? ¿la conoces? normalmente tu IP de Android solamente es accesible desde dentro de la red local, tendrías que cambiar algunas cosas en tu módem para hacer que redirija el tráfico desde fuera de la red local.
      Si es uno remoto: asegúrate de habilitar las conexiones remotas, era algo de bind address. No te recomiendo que te conectes desde Android, mejor conéctate desde Windows o Linux con mysql -h la.ip.del.servidor -u tu_usuario -p para probar si es tu servidor o tu Android
      Te dejo unos tutoriales que pueden servirte:
      https://parzibyte.me/blog/2018/09/27/replicacion-mysql-windows-linux/
      https://parzibyte.me/blog/2018/09/19/primeros-pasos-con-la-cli-de-mysql/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.