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.
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:
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)
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.
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.
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.
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.
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
https://parzibyte.me/blog/2019/02/05/ejecutar-scripts-termux-inicio-dispositivo-android/
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
Pingback: Configurar servidor de MySQL o MariaDB en Android para permitir conexiones remotas - Parzibyte's blog
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/
Pingback: Ejecutar scripts de Termux en el inicio (al encender dispositivo Android) - Parzibyte's blog
Pingback: Instalar Python 3 y pip en Android usando Termux - Parzibyte's blog
Pingback: Configurar Termux en Android (Linux en nuestro bolsillo) - Parzibyte's blog