Instalación completa Base de datos MySQL & MariaDB en Raspberry Pi 3 B / B+

Entre bases de datos mas populares esta MySQL cuenta con 2 tipos de licenciamiento Licencia publica general y licencia comercial,  es considerada la base de datos de código abierto mas popular del mundo esta incluida en casi todos hosting muy utilizada por WordPress, también esta incluida como componente de desarrollo en  LAMPXAMMP.

Anteriormente realice un tutorial de instalación del Dashboard Grafana en un Raspberry Pi, en esta ocasión instalaremos MySQL en Raspberry Pi para integrar ambos en una aplicación funcional:

Tutorial Recomendado: Instalacion Grafana en Raspberry Pi

Instalacion completa Dashboard Grafana en Raspberry Pi 3 B / B+




MySQL

Ha sido una gran sorpresa saber que MySQL cuenta con un sistema de gestión de bases de datos llamado MariaDB , Continuando con nuestras pruebas con el Dashboard Grafana requerimos una base de datos robusta y hemos decidido implementar  MySQL la cual instalaremos en nuestro Raspberry Pi 3 B.

Mas información: MySQL Wikipedia

MariaDB

Dado que Oracle es el dueño de MySQL, nacio la fundacion MariaDB y una gran comunidad de desarolladores de software libre, MariaDB es una bifurcación, una variacion del codigo fuente original.

Mas información: MariaDB Wikipedia

Materiales y donde comprarlos




Recomendaciones

 Raspbian Stretch Lite

Para tener el mejor rendimiento de nuestra Raspberry Pi, recomiendo instalar RASPBIAN STRETCH LITE, esta versión es la imagen tiene el mínimo de aplicaciones pre-instaladas, tampoco tiene escritorio o interface grafica, toda la configuración se realiza mediante linea de comandos, recomiendo microSD 8GB.

Instalacion de Cliente SSH y Raspbian

Dado que en Internet existen cientos de tutoriales de como montar raspbian, omitire el paso y colocare ese tutorial  del sitio hackernoon.com al cual agradezco por el tutorial, el indica el proceso de montar el Sistema Operativo y adicional montar el cliente SSH.

Nota: El raspberry pi 3 B y/o B+ tiene Wifi incluido.




Instalación & Configuración MySQL

Realmente el método de instalación de MySQL ha variado, uno de los inconvenientes mas grandes de la configuración del usuario «root» o administrador.

Realice muchas pruebas para crear una contraseña para este usuario que por defecto MySQL no requiere contraseñas, pero para conectar MySQL con otras aplicaciones como Node-RED, Python y  Grafana la autentificacion es requerida por temas de seguridad.

A continuación instalaremos MySQL y Realizaremos la respectiva configuración creación de usuarios y bases de datos.

Actualizar lista de paquetes disponibles

sudo apt update 

Actualizar paquetes

sudo apt upgrade -y

Eliminar paquetes obsoletos

sudo apt autoremove -y

Instalar Servidor de base de datos MySQL

sudo apt-get install mysql-server -y

Verificar estado de MySQL(MariaDB), debe estar corriendo

sudo /etc/init.d/mysql status

Crear Base de datos y nuevo Usuario

Ingresar a MariaDB usuario desde usuario «root»

presionar «Enter», no se requiere contraseña  para el usuario «root» ingresamos a  MariaDB para introducir Query.

sudo mysql -u root -p -h localhost

Crear nueva base datos «grafana_db»

CREATE DATABASE grafana_db;

Utilizar base de datos «grafana_db»

USE grafana_db;

Crear un nuevo usuario «grafana_user» y asignar la contraseña «password»

CREATE USER 'grafana_user'@'localhost' IDENTIFIED BY 'password';

Asignarle todos los permisos al usuario «grafana_user» sobre la base de datos «grafana_db».

GRANT ALL PRIVILEGES ON grafana_db.* TO 'grafana_user'@'localhost';
FLUSH PRIVILEGES;

Salir de MariaDB (MySQL)

quit

Reiniciar mysql

sudo service mysql restart

Crear una Tabla

Adelantare un poco el proceso,  para mis pruebas futuras creare un tabla sencilla para enviar datos desde un ESP32 + Node-RED, tome esta tabla como un ejemplo, adapte a sus necesidades

Esta tabla se compone de 4 columnas, la tabla «esp32_dht11»

  1. dateandtime (TIPO Datetime o Formato de tiempo)
  2. sensor (TIPO Varchar o cadena de 32 caracteres )
  3. temperature (TIPO Double o flotante con decimales)
  4. humidity (TIPO Double o flotante con decimales)
CREATE TABLE esp32_dht11 (dateandtime DATETIME, sensor VARCHAR(32), temperature DOUBLE, humidity DOUBLE);

Nota: estas es una breve introducción, quizás mas adelante explique un poco en detalle, pero mejor recomiendo buscar tutoriales en internet sobre Query en MySQL, deben existir miles de tutoriales.
Recomendación: Para una explicación mas detallada paso a paso recomiendo ver el vídeo completo  Installation Dashboard Grafana in Raspberry Pi 3 B or B+:PDAControl  disponible en nuestro canal de Youtube PDAControl.




Prueba de conexión MySQL y Grafana

Con un usuario «grafana_user» y una contraseña «password» y la base de datos «grafana_db» sin ningún problema podemos conectarnos a Grafana,  para graficar en grafana obviamente necesitamos datos, pero con este tutorial hasta el momento deberíamos poder conectar nuestra base de datos «grafana_db»

Nota: Grafana y MySQL están ambos instalados en el mismo Raspberry Pi. 

Mas información MySQL  Grafana:

  docs.grafana.org/features/datasources/mysql/

Video Instalación Completa




Conclusiones

Mis primeras experiencias con bases de datos fueron SQLServer y MySQL (MariaDB) bases de datos relacionales, existen otras posibilidades como MongoDB e InfluxDB  bases de datos No-SQL.

Como han visto me gustan los sistemas eficientes y trato en lo minimo de utilizar interfaces, prefiero linea de comandos, en el caso de Raspberry Pi se debe ser muy recursivo dado los recursos tan limitados de RAM y espacio de almacenamiento.

Por eso no instalaremos cosas como Apache  php o phpmyadmin, demostrare que se puede solo con linea de comandos, ademas utilizaremos Node-RED.

Para mi integración con Grafana he seleccionado MySQL inicialmente, por que lo manejo desde hace mucho, existen otras posibilidades, probé un poco de InfluxDB hace unos años, pero veo que es muy enfocado en series de tiempo y requiero hacer otras cosas que aun no conozco en esa bases de datos.

Si se que existen ventajas y desventajas entre bases de datos relacionales y No-SQL, poco realizaremos pruebas a otras BD.

Referencias

Deja una respuesta