Skip to content

📌 Esquema de configuració de MariaDB en Docker

🛠️ Instal·lació de dependències

  1. Accedir al contenidor MySQL.

    docker exec -it mysql sh
    

  2. Actualitzar la llista de paquets.

    apk update
    

  3. Instal·lar MariaDB i el client de MariaDB.

    apk add mariadb mariadb-client
    

  4. Comprovar versió de MariaDB (Opcional).

    mysql --version
    

🔧 Preparació de directoris i permisos

  1. Crear el directori necessari per MySQL.

    mkdir -p /var/lib/mysql
    

  2. Canviar el propietari del directori a l'usuari mysql.

    chown -R mysql:mysql /var/lib/mysql
    

  3. Per assegurar-te que els permisos es van aplicar correctament (Opcional).

    ls -l /var/lib | grep mysql
    

⚙️ Inicialització de MariaDB

  1. Inicialitzar la instal·lació de MariaDB.

    mariadb-install-db --user=mysql --datadir=/var/lib/mysql
    
    Això crearà els arxius de sistema necessaris perquè MariaDB funcioni correctament.

  2. Per a verificar que tot està en ordre. (Opcional)

    ls -l /var/lib/mysql
    

🚀 Iniciar el servei de MariaDB

  1. Iniciar el servidor MariaDB en segon pla.
    mysqld --user=mysql --datadir=/var/lib/mysql --skip-networking=0 &
    

A l'executar aquesta comada em va sortir un error:

Veure el error Error: 2025-03-25 16:24:49 0 [ERROR] Can't start server : Bind on unix socket: No such file or directory 2025-03-25 16:24:49 0 [ERROR] Do you already have another server running on socket: /run/mysqld/mysqld.sock ? 2025-03-25 16:24:49 0 [ERROR] Aborting
Veure solució Per solucionar aquest error vaig executar les següents comandes:

1. Crear el directori del socket si no existeix:
mkdir -p /run/mysqld

2. Assignar permisos a l'usuari mysql:
chown -R mysql:mysql /run/mysqld

3. Iniciar MariaDB novament:
mysqld --user=mysql --datadir=/var/lib/mysql --skip-networking=0 &

🗄️ Crear i configurar la base de dades

  1. Accedir a MariaDB com root.
    mysql -u root
    
  2. Crear la base de dades laravel_db.

    CREATE DATABASE laravel_db;
    

  3. Crear l'usuari sergiColl i atorgar-li tots els privilegis sobre la base de dades.

    CREATE USER 'sergiColl'@'%' IDENTIFIED BY '';
    GRANT ALL PRIVILEGES ON laravel_db.* TO 'sergiColl'@'%';
    

  4. Actualitzar els privilegis de MariaDB.

    FLUSH PRIVILEGES;
    

  5. Sortir de MariaDB.

    EXIT;
    

⚙️ Configuració de MariaDB per acceptar connexions remotes

  1. Editar l'arxiu de configuració de MariaDB.
    vi /etc/my.cnf.d/mariadb-server.cnf
    
  2. Modificar la configuració per permetre connexions remotes canviant skip-networking i configurant bind-address.

    [mysqld]
    skip-networking=0
    bind-address=0.0.0.0
    
    skip-networking=0: Habilita les connexions de xarxa.
    bind-address=0.0.0.0: Permet connexions des de qualsevol adreça IP.

  3. Reiniciar el servei de MariaDB.

    mysqladmin shutdown
    mysqld --user=mysql --datadir=/var/lib/mysql --skip-networking=0 &
    

🖥️ Verificació i ús de la base de dades

  1. Accedir a MariaDB.
    mysql -u root
    
  2. Seleccionar la base de dades laravel_db i mostrar les taules.
    USE laravel_db;
    SHOW TABLES;