Files
WPanda/GEMINI_mariadb.md
2025-12-15 09:59:42 +01:00

4.4 KiB

MariaDB telepítése Docker konténerben

Ez az útmutató bemutatja, hogyan telepíthető és futtatható a MariaDB egy Docker konténerben. A Docker használata leegyszerűsíti a telepítést, az izolációt és a hordozhatóságot.

Előfeltételek

  • Docker: A Docker-nek telepítve kell lennie a rendszereden.

Lépések

1. MariaDB Docker Képfájl Letöltése

Először le kell töltenünk a hivatalos MariaDB képfájlt a Docker Hub-ról.

docker pull mariadb

Ez a parancs letölti a legfrissebb (latest) MariaDB verziót.

2. Adat-kötet (Volume) Létrehozása

Annak érdekében, hogy az adatbázis adatai megmaradjanak a konténer újraindítása vagy törlése után is, létrehozunk egy Docker "volume"-ot.

docker volume create mariadb_data

3. MariaDB Konténer Futtatása

Most indítsuk el a MariaDB konténerét a korábban létrehozott kötettel.

docker run -d \
    --name my-mariadb \
    -p 3306:3306 \
    -v mariadb_data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    mariadb

A parancs paramétereinek magyarázata:

  • -d: A konténert a háttérben (detached mode) futtatja.
  • --name my-mariadb: Nevesített konténert hoz létre (my-mariadb) a könnyebb hivatkozás érdekében.
  • -p 3306:3306: A gazdagép (host) 3306-os portját összekapcsolja a konténer 3306-os portjával. Így a helyi hálózaton keresztül elérhetővé válik az adatbázis.
  • -v mariadb_data:/var/lib/mysql: Csatolja a mariadb_data kötetet a konténer /var/lib/mysql könyvtárához, ahol az adatbázis fájljai tárolódnak.
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw: Beállítja a root felhasználó jelszavát. Fontos: Cseréld le a my-secret-pw értéket egy erős, biztonságos jelszóra!
  • mariadb: A futtatandó képfájl neve.

4. Csatlakozás az Adatbázishoz

Csatlakozhatsz a futó MariaDB konténerhez egy SQL klienssel, vagy a docker exec paranccsal.

docker exec -it my-mariadb mysql -u root -p

A parancs be fogja kérni a root jelszót (amit a -e kapcsolóval adtál meg).

Konfiguráció docker-compose segítségével (Javasolt)

A docker-compose egy eszköz, amely megkönnyíti a több konténerből álló alkalmazások definiálását és futtatását. Ez a javasolt módszer a MariaDB (és a hozzá kapcsolódó alkalmazások) kezelésére.

Hozd létre a következő docker-compose.yml fájlt:

version: '3.8'

services:
  db:
    image: mariadb
    container_name: mariadb-compose
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    ports:
      - "3306:3306"
    volumes:
      - mariadb_data:/var/lib/mysql

volumes:
  mariadb_data:

A futtatáshoz navigálj abba a könyvtárba, ahol a docker-compose.yml fájl található, és futtasd a következő parancsot:

docker-compose up -d

Távoli Adminisztrációs Felhasználó Létrehozása

Az alábbi lépések bemutatják, hogyan hozhatsz létre egy új felhasználót, aki távolról is be tud lépni és teljes adminisztrációs jogokkal rendelkezik (új felhasználók és adatbázisok létrehozása, jogok kezelése stb.).

  1. Lépj be a MariaDB konténerbe root felhasználóként:

    docker exec -it my-mariadb mysql -u root -p
    

    (Add meg a root jelszót, amikor kéri.)

  2. Futtasd az alábbi SQL parancsokat:

    Cseréld le a remote_admin nevet a választott felhasználónévre, és a super-strong-password-ot egy erős, biztonságos jelszóra.

    -- Felhasználó létrehozása. A '%' azt jelenti, hogy bármilyen IP címről bejelentkezhet.
    -- Biztonsági okokból érdemes lehet a '%' helyett egy konkrét IP címet megadni, pl. 'remote_admin'@'192.168.1.100'.
    CREATE USER 'remote_admin'@'%' IDENTIFIED BY 'super-strong-password';
    
    -- Minden jog megadása az összes adatbázison (*.*), és a jog továbbadásának engedélyezése (WITH GRANT OPTION).
    GRANT ALL PRIVILEGES ON *.* TO 'remote_admin'@'%' WITH GRANT OPTION;
    
    -- A jogosultsági táblák frissítése a változtatások érvényesítéséhez.
    FLUSH PRIVILEGES;
    
    -- Kilépés
    EXIT;
    

Ezzel a remote_admin felhasználó képes lesz bármely SQL kliensből (pl. DBeaver, HeidiSQL, DataGrip) csatlakozni a Docker gazdagép IP címén és a 3306-os porton keresztül, és teljes körűen adminisztrálni az adatbázis-szervert.