120 lines
4.4 KiB
Markdown
120 lines
4.4 KiB
Markdown
# 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.
|