MariaDB na Linuxu: Co to je, jak ji nainstalovat (Ubuntu/CentOS/Debian) a bezpečné nastavení

1. Co je MariaDB?

Přehled a klíčové vlastnosti MariaDB

MariaDB je open-source relační systém pro správu databází (RDBMS). Je vyvíjena na základě MySQL a je široce používána v mnoha systémech a aplikacích díky své vysoké kompatibilitě.

Původně, po akvizici MySQL společností Oracle, někteří její vývojáři se oddělili a spustili projekt MariaDB. Výsledkem je, že MariaDB si zachovává sadu příkazů a datové struktury podobné MySQL, přičemž klade důraz na otevřenost a transparentnost v designu.

MariaDB je zdarma k použití a podporuje širokou škálu účelů jak pro komerční, tak nekomerční využití. Zejména má silnou historii v prostředích Linuxových serverů a je vysoce ceněna pro stabilitu, výkon a bezpečnost.

Rozdíly oproti MySQL

MariaDB a MySQL jsou velmi podobné a mnoho příkazů a konfiguračních souborů lze použít tak, jak jsou. Nicméně existuje několik důležitých rozdílů.

  • Licenční rozdíly Protože MySQL je vyvíjena a spravována společností Oracle, mohou se v některých komerčních scénářích uplatňovat licenční omezení. MariaDB je naopak založena na GPL (GNU General Public License), což umožňuje flexibilnější použití.
  • Rychlost vývoje a komunitní přístup MariaDB je aktivně vyvíjena komunitou a má tendenci rychleji zavádět nové funkce. Je zvláště silná v enterprise‑orientovaných funkcích (jako jsou možnosti úložišť a optimalizace výkonu).
  • Rozšiřitelnost a kompatibilita MariaDB udržuje vysokou kompatibilitu s MySQL a zároveň poskytuje vlastní úložné enginy (např. Aria a ColumnStore), což umožňuje flexibilní operace podle vašeho případu použití. Nicméně s vývojem verzí se mohou objevit rozdíly v kompatibilitě, takže při migraci je třeba být opatrný.

Výhody výběru MariaDB

Při nasazování databáze v Linuxovém prostředí nabízí MariaDB následující výhody:

  • Jednoduchá instalace s jednoduchou konfigurací
  • Lehký a rychlý výkon
  • Škálovatelnost, která zvládne zpracování velkých objemů dat
  • Stabilní provoz v dlouhodobém horizontu
  • Rozsáhlé znalosti a podpora od vývojářů po celém světě

Z těchto důvodů je MariaDB vybírána pro širokou škálu prostředí, od osobních vývojových nastavení po podnikové produkční systémy.

2. Příprava před instalací

Před instalací MariaDB v Linuxovém prostředí je třeba potvrdit několik bodů a provést přípravné kroky. Vynechání tohoto kroku může později vést k problémům, takže předběžná příprava je velmi důležitá.

Zkontrolujte systémové požadavky

MariaDB je lehká a rychlá databáze, ale má minimální systémové požadavky. Níže jsou obecné orientační požadavky (liší se podle verze a způsobu použití):

  • OS : Linuxové distribuce jako Ubuntu, Debian, CentOS a RHEL
  • CPU : 1 GHz nebo vyšší (doporučeno více jader)
  • Memory : 512 MB nebo více (doporučeno 1 GB nebo více)
  • Storage : 1 GB nebo více volného místa (přizpůsobte podle objemu dat)
  • Network : Vyžadováno internetové připojení pro stažení balíčků a aplikaci aktualizací

Upozorňujeme, že na starších Linuxových distribucích nemusí být podporovány nejnovější verze MariaDB. Zkontrolujte verzi svého Linuxu a v případě potřeby přidejte repozitáře nebo proveďte jiné kroky.

Ověřte a aktualizujte požadované balíčky

Pro instalaci MariaDB obvykle používáte standardní správce balíčků OS (např. APT nebo YUM). Aktualizace systému předem pomáhá předejít problémům se závislostmi.

Zde je příklad pro Ubuntu/Debian:

sudo apt update
sudo apt upgrade -y

Na CentOS/RHEL spusťte následující:

sudo yum update -y

Také ověřte, že jsou nainstalovány následující balíčky (nainstalujte je, pokud chybí):

  • curl : Používá se při přidávání repozitáře MariaDB
  • gnupg : Používá se k ověření podpisových klíčů
  • software-properties-common (hlavně pro Ubuntu): Vyžadováno pro správu PPA. Není vždy nutné na Debianu.

Zvažte použití oficiálního repozitáře MariaDB

V mnoha linuxových distribucích je MariaDB zahrnuta ve výchozích repozitářích balíčků, ale poskytovaná verze může být starší.

Pokud chcete vždy používat nejnovější stabilní verzi, můžete přidat oficiální repozitář MariaDB. Další sekce představuje kroky specifické pro jednotlivé OS, ale rozhodnutí předem, kterou verzi budete používat, usnadní instalaci.

3. Kroky instalace podle hlavních distribucí

MariaDB je dostupná v mnoha linuxových distribucích, ale instalační metody se mírně liší. V této sekci projdeme podrobné kroky instalace pro tři reprezentativní distribuce: Ubuntu, CentOS a Debian.

Instalace MariaDB na Ubuntu

Na Ubuntu instalujete MariaDB pomocí správce balíčků APT. Tato sekce cílí na Ubuntu 20.04 / 22.04 LTS.

1. Aktualizujte seznam balíčků

sudo apt update

2. Nainstalujte MariaDB

sudo apt install mariadb-server -y

Tento příkaz automaticky nainstaluje MariaDB a její požadované závislé balíčky.

3. Spusťte a povolte službu

sudo systemctl start mariadb
sudo systemctl enable mariadb

4. Ověřte, že běží

sudo systemctl status mariadb

Pokud vidíte „active (running)“, služba byla úspěšně spuštěna.

Instalace MariaDB na CentOS

Na CentOS 7 a CentOS Stream 8 používáte YUM nebo dnf. Protože výchozí repozitáře často poskytují starší verze, je běžné přidat oficiální repozitář.

1. Přidejte oficiální repozitář (příklad: MariaDB 10.6)

sudo vi /etc/yum.repos.d/MariaDB.repo

Vložte následující a uložte:

[mariadb]
name = MariaDB
baseurl = https://downloads.mariadb.com/MariaDB/mariadb-10.6/yum/centos7-amd64
gpgkey=https://downloads.mariadb.com/MariaDB/MariaDB-Server-GPG-KEY
gpgcheck=1

*Upravte verzi a nastavení OS podle potřeby pro vaše prostředí.

2. Nainstalujte balíčky

sudo yum install mariadb-server -y

Nebo na CentOS Stream 8 a novějších:

sudo dnf install mariadb-server -y

3. Spusťte a povolte službu

sudo systemctl start mariadb
sudo systemctl enable mariadb

Instalace MariaDB na Debian

Debian také používá APT, ale použitím oficiálního repozitáře MariaDB místo výchozích repozitářů můžete nainstalovat nejnovější stabilní verzi.

1. Nainstalujte závislé balíčky

sudo apt install curl software-properties-common gnupg -y

2. Přidejte repozitář MariaDB (příklad: Debian 11 “Bullseye”)

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

3. Instalace

sudo apt update
sudo apt install mariadb-server -y

4. Spusťte a povolte službu

sudo systemctl start mariadb
sudo systemctl enable mariadb

4. Konfigurace znakové sady

Jedním z nejdůležitějších bodů při používání MariaDB v japonském prostředí je konfigurace znakové sady (kódování). Protože japonština obsahuje vícebytové znaky, spuštění provozu s nesprávným nastavením může vést k problémům, jako jsou poškozené texty nebo korupce dat.

Doporučená znaková sada pro japonská prostředí: UTF-8

Pro MariaDB je doporučená znaková sada utf8mb4. Je výkonnější než starší utf8 a podporuje 4‑bytové znaky, jako jsou emoji, což ji činí vhodnou nejen pro japonštinu, ale i pro vícejazyčná prostředí.

V výchozím nastavení rodiny MySQL můžete vidět latin1 nebo utf8, a ponechání těchto nastavení může způsobit problémy. Proto změňte nastavení na utf8mb4 hned po instalaci.

Jak upravit konfigurační soubor (my.cnf)

MariaDB’s konfigurační soubor se obvykle nachází v /etc/mysql/my.cnf nebo /etc/my.cnf. Přidejte nebo upravte sekce [client] a [mysqld] podle níže uvedeného.

[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

Po změně nastavení restartujte MariaDB, aby se změny projevily:

sudo systemctl restart mariadb

Ověření, že nastavení bylo použito

Připojte se k MariaDB a potvrďte, že nastavení bylo aplikováno.

sudo mariadb

Po připojení spusťte následující příkaz:

SHOW VARIABLES LIKE 'character\_set%';

Očekávaný příklad výstupu:

character_set_client    utf8mb4
character_set_connection utf8mb4
character_set_database   utf8mb4
character_set_results    utf8mb4
character_set_server     utf8mb4

Pokud výstup vypadá takto, konfigurace znakové sady byla úspěšně aplikována.

Poznámka: Znakové sady pro existující data

Pokud již máte existující databáze nebo tabulky, jejich znakové sady se automaticky nezmění. V případě potřeby je musíte změnit jednotlivě pomocí příkazu ALTER, například:

ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

Podobně můžete změnit nastavení na úrovni tabulky nebo sloupce.

5. Konfigurace zabezpečení

Ihned po instalaci MariaDB není zabezpečení plně dotaženo. Aplikací minimálních nezbytných bezpečnostních nastavení před nasazením do produkce můžete snížit riziko neoprávněného přístupu a úniku dat. Tato sekce představuje základní kroky konfigurace zabezpečení MariaDB.

Spuštění mysql_secure_installation

MariaDB poskytuje skript pro zvýšení zabezpečení, který byste měli spustit ihned po instalaci: mysql_secure_installation.

Spusťte jej následujícím příkazem:

sudo mysql_secure_installation

Při spuštění se vám postupně zobrazí několik otázek. Zde je vysvětlení jednotlivých možností.

  1. Nastavit (nebo aktualizovat) heslo root → Nastavte heslo pro administrátorského uživatele MariaDB „root“. Použijte silné heslo.
  2. Odstranit anonymní uživatele → Ve výchozím nastavení může existovat „anonymní“ uživatel. To je zbytečné a riskantní, proto se doporučuje jeho odstranění .
  3. Zakázat vzdálené přihlášení root → Povolení přístupu root přímo z externích sítí je extrémně nebezpečné. Ve většině případů tuto možnost nastavte na zakázáno .
  4. Odstranit testovací databázi → Testovací databáze vytvořená pro testování je v mnoha případech také zbytečná. Doporučuje se její odstranění .
  5. Znovu načíst tabulky oprávnění → Tím se výše uvedené změny aplikují okamžitě. Potvrďte volbou „Yes“ .

Odpovědí na všechny tyto otázky výrazně posílíte zabezpečení MariaDB v jeho výchozím počátečním stavu.

Konfigurace firewallu (pokud je potřeba)

MariaDB obvykle komunikuje přes port 3306. Otevření tohoto portu závisí na tom, jaký způsob používání systému máte v úmyslu.

  • Při lokálním použití nebo na samostatném serveru → Port 3306 můžete nechat zavřený.
  • Při povolení externího přístupu (např. připojení z aplikace na jiném serveru) → Otevřete přístup jen pro požadované IP adresy.

Příklad: Omezení přístupu pomocí UFW na Ubuntu

sudo ufw allow from 192.168.0.10 to any port 3306

Vytvoření uživatele jiného než root (doporučeno)

V produkci je nejlepší praxí vytvořit a používat dedikovaný uživatelský účet místo administrátorského uživatele „root“. Zde je příklad:

CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

Používání samostatných uživatelů pro jednotlivé aplikace pomáhá minimalizovat dopad v případě kompromitace přihlašovacích údajů.

6. Ověření

Po instalaci MariaDB, dokončení počáteční konfigurace a aplikaci bezpečnostních opatření je posledním krokem ověřit, že vše funguje správně. Tato sekce vysvětluje, jak potvrdit konektivitu a spustit základní SQL příkazy.

Připojení k MariaDB

Po instalaci ověřte, že se můžete připojit k MariaDB pomocí následujícího příkazu:

sudo mariadb

Nebo pokud chcete zadat uživatele a poskytnout heslo:

mariadb -u root -p

Po vyzvání zadejte heslo, které jste nastavili pomocí mysql_secure_installation.

Pokud se přihlášení podaří, uvidíte výzvu podobnou následující:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.6.16-MariaDB MariaDB Server

Pokud toto vidíte, MariaDB běží normálně a můžete se úspěšně připojit.

Vytvořit databázi

Dále, jako jednoduchý test, vytvořte databázi.

CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Pokud se provede úspěšně, databáze byla vytvořena bez problémů.

Zkontrolujte seznam databází, které máte:

SHOW DATABASES;

Pokud se objeví testdb, vše fungovalo.

Vytvořit tabulku a vložit data

Vytvořte testovací tabulku a vložte nějaká data.

USE testdb;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(100)
);

INSERT INTO users (name, email) VALUES ('田中太郎', 'taro-tanaka@example.com');

※Tento příklad ověřuje, že vícebytový (japonský) text je uložen správně pomocí utf8mb4.

Načíst data

Pro potvrzení vložených dat spusťte následující dotaz.

SELECT * FROM users;

Pokud výstup zobrazí informace o Taro Tanaka, můžete usoudit, že databáze funguje správně.

Zkontrolovat informace o serveru

Pokud chcete zkontrolovat základní informace, jako je verze MariaDB, spusťte následující příkaz:

STATUS;

Tím se zobrazí podrobnosti, jako je stav připojení, verze serveru a konfigurace znakové sady.

7. Často kladené otázky (FAQ)

Při instalaci a provozu MariaDB v Linuxovém prostředí se mnoho lidí setkává s běžnými otázkami nebo problémy. Vědět, jak je předem řešit, může být uklidňující. Zde jsme shrnuli často vyhledávané body ve formátu FAQ pro začátečníky až středně pokročilé uživatele.

Q1. Jak mohu zkontrolovat verzi MariaDB?

Po připojení k MariaDB ji můžete zkontrolovat spuštěním následujícího příkazu.

SELECT VERSION();

Nebo ji můžete zkontrolovat přímo z příkazové řádky takto:

mariadb --version

Příklad výstupu:

mariadb  Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64)

Q2. Co mám dělat, když při instalaci vidím „Package not found“?

Zkontrolujte následující:

  • Seznam balíčků není aktuální → Spusťte sudo apt update nebo sudo yum update, poté to zkuste znovu
  • Oficiální repozitář MariaDB nebyl správně přidán → Zkontrolujte konfigurační soubory repozitářů (např. /etc/apt/sources.list.d/ nebo /etc/yum.repos.d/ )
  • Vaše distribuce a verze MariaDB nejsou kompatibilní → Znovu ověřte podporované verze na oficiální stránce ke stažení

Q3. Jak odinstalovat MariaDB?

Pro Ubuntu/Debian:

sudo apt remove --purge mariadb-server mariadb-client -y
sudo apt autoremove -y

Pro CentOS/RHEL:

sudo yum remove mariadb-server -y

Poté, pokud chcete také odstranit data a konfigurační soubory, spusťte následující:

sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf /etc/mysql

Pokud máte důležitá data, ujistěte se, že je před smazáním zálohujete.

Q4. Jak zálohovat a obnovit databázi?

Záloha (vytvoření souboru dump):

mysqldump -u root -p your_database > backup.sql

Obnovení:

mysql -u root -p your_database < backup.sql

Tato metoda je jednoduchá a běžná a je velmi užitečná pro migrace MariaDB a zotavení po havárii.

Q5. Proč se nemohu připojit k MariaDB zvenčí serveru?

Možné příčiny zahrnují:

  • bind-address je nastaven na 127.0.0.1 → V /etc/mysql/my.cnf nebo /etc/my.cnf změňte na bind-address = 0.0.0.0 (buďte opatrní s bezpečností)
  • Port 3306 je blokován firewallem → Otevřete port pomocí např. sudo ufw allow 3306
  • Uživatel nemá povoleno vzdálené připojení → Musíte vytvořit uživatele ve formátu user@'%'