Ir al contenido
ProyectoPy ProyectoPy
  1. Apps/

Apps | Instalar MariaDB en tu Raspberry

·1787 palabras·9 mins· 0 · 0 · ·
servidor sitios webs http instalar database
Aprende a instalar - Este articulo forma parte de una serie.
Parte 5: Este articulo

De todos es sabido que al gestionar un sitio web uno de los llamemosles complementos son las bases de datos hay muchos gestores de bases de datos entre ellos mongoDB, MySQL y en el que nos centramos hoy MariaDb.
Pues como seguramente en algún momento nuestro sitio necesitará una base de datos vamos a instalarla en nuestro servidor.

Puedes ver todos los articulos que componen esta serie aquí.

MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.1​ Introduce dos motores de almacenamiento nuevos, uno llamado Aria —que reemplaza a MyISAM— y otro llamado XtraDB —en sustitución de InnoDB—. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.2

Instalar MariaDB en tu Raspberry.>

Instalar MariaDB en tu Raspberry. #

Vamos a instalar MariaDB en nuestra Raspberry.No es dificil pero hay que prestar atencion.

MariaDB funciona perfectamente con Apache, Nginx, Lighttpd y muchos más servidores. Además de instalar MariaDB vamos a configurarla para que sea una aplicación segura que no ponga en riesgo nuestra Raspberry.
Aunque en otros tutoriales de esta serie no lo he comentado esta practica que realizaremos hoy es aconsejable.
Actualizar el sistema con update y upgrade, ejecuta el siguiente comando para hacerlo.

sudo apt-get update && sudo apt-get upgrade -y

Una vez terminado, instalaremos los paquetes que la documentacion de MariaDB nos aconseja intalar. Ejecuta los siguientes comandos para hacerlo.

sudo apt-get install software-properties-common dirmngr gnupg2 -y
sudo apt-get install apt-transport-https wget curl -y

Ahora ya tenemos las dependencias cumplidas por lo que instalaremos MariaDB desde el repositorio oficial de Debian, ya que como sabeis, Raspberry OS está basado en una distribución de Debian usando el siguiente comando:

sudo apt-get install mariadb-server -y

Una vez que retornes al promt de la terminal para comprobar si MariaDB está funcionando correctamente. Ejecuta el comando:

sudo systemctl status mariadb.service 

Si Si ve “Active:active (running)” cuando ejecutes el comando, el resultado debería mostrar algo similar a lo del badge siguiente.

● mariadb.service - MariaDB 10.6.7 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: ena>
     Active: active (running) since Wed 2023-10-30 21:17:28 AEST; 1s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    ....

Si por el contrario ve “Active: inactive (dead)”, intente ejecutar los dos comandos siguientes.
El primer comando permitirá que MariaDB se inicie a la vex que el sistema. El segundo iniciará el servicio inmediatamente.

sudo systemctl enable mariadb
sudo systemctl start mariadb

Si necesitas saber que version tienes instalada utiliza el comando

mariadb -v

En el momento de este tutorial la version instalada es:

mariadb  Ver 15.1 Distrib 10.5.21-MariaDB, for debian-linux-gnu (aarch64)
Asegurar la instalación de MariaDb.>

Asegurar la instalación de MariaDb. #

MariaDB tiene un script que nos ayudará a proteger la instalación mysql_secure_installation.

Intentaremos hacerlo de una manera como es nuestra costumbre lo más sencillo posible.

Accedemos a la terminal para comenzar el proceso de protección de MariaDB, copiamos y pegamos el siguiente comando;

sudo mysql_secure_installation

Ahora empieza la entrevista. El script realizará una serier de preguntas, en su mayoria bastante sencillas.

Nada mas pulsar ENTER, aparecerá la primera pregunta donde nos solicita la clave para el usuario root. Por defecto MariaDB utiliza al usuario root sin contraseña.

Enter current password for root (enter for none):

Pulsamos ENTER y de nuevo otra pregunta.

OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n]

Expliquemos lo que nos dice el script. Basicamente explica que al establecer la contraseña de root o usar unix_socket garantiza que nadie puede iniciar sesión como usuario root de MariaDB sin la autorización adecuada. Esto significa que la única forma de conectarse a su usuario root es conectarse usando sudo. Como ya eso está configurado por defecto podemos contestar tranquilamente n y pulsar ENTER.

... skipping.

You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n]

En este momento nos pide cambiar la clave que por defecto está vacia por otra.
Si decide presionar Y y luego la ENTER, nos pide la nueva contraseña para el usuario root y su confirmación.
Al asignarle la nueva contraseña estamos haciendo más segura MariaDB.
A partir de ahora al usar tu usuario root necesitarás la contraseña.

Pasemos a la siguiente pregunta de la entrevista del señor script

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]

Esta pregunta nos consulta sobre la eliminación de usuarios anónimos de la instalación de MariaDB.

Los usuarios anónimos representan un riesgo al permitir el inicio de sesión en MariaDB sin necesidad de un usuario.

Escriba Y presione ENTER para eliminar estos usuarios.

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

Responderemos a esta pregunta y y presionaremos ENTER ya que debemos impedir el acceso al usuario root de forma remota. Puedes si es necesario para ti, autorizar el acceso, pero debo advertirte que esa practica, puede permitir el acceso remoto y asimismo puede permitir a un atacante potencial forzar la contraseña del usuario por fuerza bruta.

MI CONSEJO: No permitas inicios de sesión remotos para el usuario root.

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]

Cuando MariaDB se instaló, se creó automáticamente una base de datos llamada test accesible por cualquira.

Esta base de datos es exclusivamente para pruebas, podemos eliminarla sin crear ningún problema por lo que la respuesta a esta pregunta será Y luego presionaremos ENTER.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]

La ultima pregunta que nos hace es para recargar las tablas de privilegios. Si respondemos n, cualquier cambio realizado no tendrá efecto. Por esta razón deberá recargar esta tabla escribiendo Y y luego presionar ENTER.

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Trás esta pregunta el script nos dará las gracias y con ello habrá terminado la entrevista y tendrás protegida tu instalación de MariaDB.

Ahora puede comenzar a utilizar el servidor de base de datos para sus necesidades.

Root alternativo de MariaDB>

Root alternativo de MariaDB #

Como ya sabes, el usuario root predeterminado está configurado para usar por defecto unix_socket".

En esta ocasión nosotros hemos asignado a root una contraseña, pero en lugar de modificar el usuario root, podemos crear un usuario para MariaDB. Este usuario se creará con privilegios algo restringidos pero podrá hacer casi todo al acceder a MariaDB.

Vamos a conectarnos a MariaDB usando el siguiente comando.

sudo mariadb

Este comando abrirá la interfaz de línea de comandos de MariaDB y se conectará automáticamente al servidor local.

Ahora desde el prompt de MariaDB, crearemos el nuevo usuario.

Usaremos el lenguage SQL (No es dificil). Conozcamos las opciones que debemos insertar antes de ejecutar este comando.

USERNAME– El nombre de usuario que se va a crear. HOST– Especificara desde dónde puede iniciar sesión. En este caso será localhost ya que solo pueda iniciar sesión desde el sistema actual. PASSWORD– La contraseña que usará este usuario.

CREATE USER 'pepito'@'localhost' IDENTIFIED BY 'contrasenadepepito';

Modifica esos tres parametros con los de tu elección e introducelos en la consola.

Este comando hará el trabajo de otorgar algunos privilegios al usuario que hemos creado.

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'pepito'@'localhost' WITH GRANT OPTION;

Podríamos otorgarle a este usuario todos los privilegios, pero eso puede ponernos en peligro, por lo que sólo otorgaremos algunos privilegios.

Explicacion rápida de os privilegios que le estamo otorgando al usuario.

CREATE, ALTER, DROP– Poder controlar usuarios, tablas y bases de datos.
INSERT, UPDATE, DELETE– Poder agregar, eliminar y actualizar datos.
SELECT– Poder seleccionar datos dentro de las tablas.
REFERENCES– Poder crear claves foráneas.
RELOAD– Poder recargar la tabla de privilegios.
WITH GRANT– Poder otorgar privilegios a otros usuarios.
WITH GRANT limita los permisos otorgables a los que ya tiene.

Al usar *.* el usuario podrá acceder a todas las bases de datos y tablas.

No olvides cambiar 'pepito'@'localhost' por tu usuario y host en el comando anterior.

Ya hemoscreado el nuevo usuario y le hemos otorgado privilegios, pero todavía no puede acceder ni nada, para eso necesitamos vaciar la tabla de privilegios. lo haremos con el siguiente comando.

FLUSH PRIVILEGES;

Ya está. Solo queda salir de la interfaz de línea de comandos de MariaDB usando el siguiente comando.

quit

Ya tenemos nuestro nuevo usuario de MariaDB que puede crear y modificar usuarios, tablas y bases de datos.

Si necesitas iniciar sesión desde la consola con este nuevo usuario, deberá utilizar el siguiente comando cambiando pepito con el nombre de usuario de su eleccion.

mariadb -u pepito -p
¿Se puede hacer algo mas?.>

¿Se puede hacer algo mas?. #

Ya hemos configurado MariaDB para Raspberry. Manejar MariaDB desde linea de comandos es bastante complicado, otra opcion que te aconsejo que contemples es intalar phpMyAdmin.

En un futuro incluiré Ya podeis visitar el tutorial de como Instalar MariaDB, con el tutorial para instalar y asegurar MariaDb.
En un futuro incluiré un tutorial para Instalar phpMyAdmin.

A falta de algunos flecos sueltos podemos decir que tenemos nuestra Raspberry Pi con un servidor web MariaDB completamente funcional y con PHP funcionando correctamente.

Y eso es todo.>

Y eso es todo. #

Bueno, otra cosa aprendida, espero que todo este rollo os esté sirviendo, para eso lo hago desde luego.

Poco a poco voy ampliando los contenidos de esta web con más tutoriales, en breve podreis ya podeis visitar tambien la seccion de ideas, con tutoriales cortos en los que mostraré como hacer cosas básicas.

En la siguiente parte de esta serie os explicaré como instalar y asegurar MariaDb.

🙋‍♀️ Recuerda, si necesitas algun consejo para empezar dejame un mensaje de email y trataré de ayudarte en la medida de mis posibilidades.



Aprende a instalar - Este articulo forma parte de una serie.
Parte 5: Este articulo