# 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. ```bash 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. ```bash 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. ```bash 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. ```bash 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: ```yaml 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: ```bash 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:** ```bash 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. ```sql -- 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.