- 1 Nejrychlejší způsob instalace MariaDB na Ubuntu (podporováno 20.04 / 22.04 / 24.04)
- 1.1 ① Aktualizace informací o balíčcích
- 1.2 ② Instalace MariaDB
- 1.3 ③ Ověření, že MariaDB běží
- 1.4 ④ Povolení automatického spuštění (obvykle není vyžadováno, ale doporučuje se ověřit)
- 1.5 ⑤ Připojení k MariaDB a ověření funkčnosti
- 1.6 Povinná bezpečnostní inicializace po instalaci
- 1.7 Verze MariaDB instalovaná podle verze Ubuntu
- 1.8 Rychlé kontroly, pokud instalace selže nebo služba nespustí
- 2 Výběr správné verze MariaDB pro vaši verzi Ubuntu
- 3 Pokud potřebujete nejnovější verzi (přidejte oficiální repozitář MariaDB)
- 4 Jak zkontrolovat aktuálně nainstalovanou verzi MariaDB
- 5 Kompletní průvodce počátečním nastavením zabezpečení MariaDB (mysql_secure_installation)
- 6 Proč se nemůžete přihlásit jako root (chyba Access Denied)
- 7 Jak změnit root na autentizaci heslem (pouze pokud je to nutné)
- 8 Jak zkontrolovat aktuální metodu autentizace
- 9 Časté chyby a řešení
- 10 Nastavení kódování znaků na utf8mb4 (prevence poškozeného textu)
- 11 Specifikace utf8mb4 při vytváření databáze (doporučeno)
- 12 Vytvoření uživatele aplikace a udělení oprávnění
- 13 Vytvoření uživatele pro vzdálený přístup (pouze pokud je potřeba)
- 14 Jak zkontrolovat aktuální uživatele a oprávnění
- 15 Časté chyby oprávnění a řešení
- 16 Jak povolit vzdálená připojení v MariaDB (oprava při selhání externího přístupu)
- 17 Kontrolní seznam, pokud se nemůžete připojit externě
- 18 Důležité bezpečnostní poznámky
- 19 Řešení problémů, když MariaDB selže při spuštění (chyba selhání)
- 20 Shrnutí příčin chyby přístupu odmítnut
- 21 Základní vylepšení výkonu (pro začátečníky)
- 22 Často kladené otázky (FAQ)
- 23 Závěr: Bezpečné používání MariaDB na Ubuntu
Nejrychlejší způsob instalace MariaDB na Ubuntu (podporováno 20.04 / 22.04 / 24.04)
Pokud chcete okamžitě začít používat MariaDB na Ubuntu, stačí postupovat podle níže uvedených kroků a dokončit instalaci i ověření spuštění. Pokud nemáte konkrétní důvod, instalace z výchozího repozitáře Ubuntu je nejbezpečnější a nejstabilnější možností.
① Aktualizace informací o balíčcích
sudo apt update
sudo apt upgrade -y
② Instalace MariaDB
sudo apt install -y mariadb-server mariadb-client
Během instalace není vyžadována žádná speciální konfigurace. Po dokončení se služba MariaDB spustí automaticky.
③ Ověření, že MariaDB běží
sudo systemctl status mariadb
Pokud se zobrazí active (running), MariaDB běží správně.
④ Povolení automatického spuštění (obvykle není vyžadováno, ale doporučuje se ověřit)
sudo systemctl enable mariadb
⑤ Připojení k MariaDB a ověření funkčnosti
sudo mysql
Pokud uvidíte následující výzvu, instalace proběhla úspěšně:
MariaDB [(none)]>
Pro ukončení zadejte exit;.
Povinná bezpečnostní inicializace po instalaci
Ihned po instalaci má MariaDB nastavená jen minimální bezpečnostní opatření. Ujistěte se, že spustíte následující příkaz:
sudo mysql_secure_installation
Obecně se doporučují následující odpovědi:
- Odstranit anonymní uživatele → Y
- Zakázat vzdálené přihlášení rootem → Y
- Odstranit testovací databázi → Y
- Znovu načíst tabulky oprávnění → Y
Tím je dokončena konfigurace zabezpečeného prostředí MariaDB na Ubuntu.
Verze MariaDB instalovaná podle verze Ubuntu
- Ubuntu 20.04 → MariaDB 10.3 series
- Ubuntu 22.04 → MariaDB 10.6 series
- Ubuntu 24.04 → MariaDB 10.11 series (LTS)
Pro většinu uživatelů je výchozí verze Ubuntu dostačující. Oficiální repozitář zvažte jen v případě, že potřebujete nejnovější funkce.
Rychlé kontroly, pokud instalace selže nebo služba nespustí
- Zkontrolujte chyby pomocí
sudo systemctl status mariadb - Zobrazte podrobné logy pomocí
sudo journalctl -xe - Zkontrolujte volné místo na disku pomocí
df -h
Ve většině případů je problém buď nedostatek místa na disku, nebo překlep v konfiguračním souboru.
Výběr správné verze MariaDB pro vaši verzi Ubuntu
Při používání MariaDB na Ubuntu je v většině případů nejbezpečnější verze z výchozího repozitáře. Bezpečnostní aktualizace a kompatibilita závislostí jsou udržovány automaticky, což je ideální pro začátečníky i pokročilejší uživatele.
Verze z výchozího repozitáře Ubuntu (doporučeno)
- Ubuntu 20.04 → MariaDB 10.3 series
- Ubuntu 22.04 → MariaDB 10.6 series
- Ubuntu 24.04 → MariaDB 10.11 series (LTS)
Pokud nemáte konkrétní požadavek, jsou tyto verze naprosto praktické pro produkční nasazení.
Pokud potřebujete nejnovější verzi (přidejte oficiální repozitář MariaDB)
Pokud potřebujete nejnovější funkce, můžete přidat oficiální repozitář MariaDB. Vzhledem k tomu, že apt-key je zastaralý, používá se metoda signed-by.
① Uložení GPG klíče
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
| sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg
② Zkontrolujte kódové jméno vaší verze Ubuntu
lsb_release -cs
Příklady:
- 20.04 →
focal - 22.04 →
jammy - 24.04 →
noble
③ Přidání oficiálního repozitáře (příklad: série 10.11)
echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list
④ Aktualizace balíčků a instalace
sudo apt update
sudo apt install mariadb-server mariadb-client
Poznámky při používání oficiálního repozitáře
- Můžete využívat novější funkce než ve výchozí verzi Ubuntu
- Existuje budoucí riziko konfliktů závislostí
- Pro produkční servery je nutné důkladné testování
Pro produkční prostředí si jasně rozhodněte, zda dáváte přednost stabilitě nebo nejnovějším funkcím.
Jak zkontrolovat aktuálně nainstalovanou verzi MariaDB
mysql --version
Příklad:
mysql Ver 15.1 Distrib 10.6.16-MariaDB
Explicitním potvrzením verze se ladění a migrace výrazně usnadní.
Kompletní průvodce počátečním nastavením zabezpečení MariaDB (mysql_secure_installation)
Ihned po instalaci MariaDB jsou použita pouze minimální bezpečnostní nastavení. Pro bezpečný provoz nezapomeňte spustit následující příkaz:
sudo mysql_secure_installation
Po spuštění se zobrazí několik výzev. Ve většině případů se doporučují následující odpovědi.
Doporučené odpovědi
- Zadejte aktuální heslo pro root: → Stiskněte Enter (není nastaveno při prvním spuštění)
- Přepnout na autentizaci unix_socket? → Y (Doporučeno na Ubuntu)
- Změnit heslo root? → N (Pokud používáte autentizaci unix_socket)
- Odstranit anonymní uživatele? → Y
- Zakázat vzdálené přihlášení root? → Y
- Odstranit testovací databázi a přístup k ní? → Y
- Načíst tabulky oprávnění znovu nyní? → Y
Tím je základní zabezpečení dokončeno.
Proč se nemůžete přihlásit jako root (chyba Access Denied)
Na Ubuntu používá uživatel root ve výchozím nastavení autentizaci unix_socket. Proto standardní přihlášení pomocí hesla nebude fungovat.
Příklad symptomu
mysql -u root -p
→ Access denied for user 'root'@'localhost'
Správná metoda přihlášení (výchozí na Ubuntu)
sudo mysql
Toto je nejbezpečnější a doporučená metoda.
Jak změnit root na autentizaci heslem (pouze pokud je to nutné)
Změňte metodu autentizace pouze v případě, že se musíte jako root připojovat z externích nástrojů nebo aplikací.
① Připojení k MariaDB
sudo mysql
② Změna autentizačního pluginu
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';
FLUSH PRIVILEGES;
③ Potvrzení změny
SELECT user, host, plugin FROM mysql.user;
Pokud je zobrazena mysql_native_password, změna byla úspěšná.
Jak zkontrolovat aktuální metodu autentizace
sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"
Hlavní metody autentizace:
- unix_socket → výchozí na Ubuntu, zabezpečené
- mysql_native_password → autentizace pomocí hesla
Pokud neexistuje konkrétní důvod, je nejbezpečnější nechat root používat autentizaci unix_socket.
Časté chyby a řešení
CHYBA 1698 (28000): Access denied for user ‚root’@’localhost‘
- Příčina: Pokus o přihlášení pomocí hesla
- Řešení: Přihlaste se pomocí
sudo mysql
mysql_secure_installation nenalezen
- Zkontrolujte pomocí
which mysql_secure_installation - Pokud není nainstalováno, spusťte
sudo apt install mariadb-server
Nastavení kódování znaků na utf8mb4 (prevence poškozeného textu)
Pro bezpečnou práci s vícejazyčným textem a emoji v MariaDB se doporučuje používat utf8mb4. Bez tohoto nastavení můžete narazit na problémy s kódováním nebo ztrátu dat.
① Úprava konfiguračního souboru
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Přidejte nebo upravte následující řádky v sekci [mysqld]:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
② Restart MariaDB
sudo systemctl restart mariadb
③ Ověření nastavení
sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"
Pokud je zobrazeno utf8mb4, konfigurace byla úspěšná.
Specifikace utf8mb4 při vytváření databáze (doporučeno)
Pokud chcete explicitně definovat znaková sada bez ohledu na globální nastavení, uveďte ji při vytváření databáze.
CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
Všechny tabulky vytvořené v této databázi budou dědit utf8mb4.
Vytvoření uživatele aplikace a udělení oprávnění
V produkčních prostředích nikdy nepoužívejte uživatele root pro připojení aplikací. Vytvořte dedikovaného uživatele a udělte pouze nezbytná minimální oprávnění.
① Přihlášení k MariaDB
sudo mysql
② Vytvoření uživatele (lokální připojení)
CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';
③ Udělení oprávnění k databázi
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
Vytvoření uživatele pro vzdálený přístup (pouze pokud je potřeba)
Nastavte toto pouze v případě, že potřebujete připojení z externího serveru nebo cloudového prostředí.
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
Poznámka: Zástupný znak “%” umožňuje připojení z libovolného hostitele. V produkčních prostředích je bezpečnější zadat konkrétní IP adresu.
Jak zkontrolovat aktuální uživatele a oprávnění
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'app_user'@'localhost';
Časté chyby oprávnění a řešení
Přístup odmítnut pro uživatele ‚app_user‘
- Nesprávná specifikace hostitele (rozdíl mezi localhost a %)
- Nebyl proveden příkaz FLUSH PRIVILEGES
- Nesprávný název databáze při připojení
Neznámá databáze
- Překlep v názvu databáze
- Pro cílovou databázi nebyla udělena žádná oprávnění
Jak povolit vzdálená připojení v MariaDB (oprava při selhání externího přístupu)
Ve výchozím nastavení MariaDB umožňuje pouze lokální připojení. Pokud potřebujete připojení z externího serveru nebo cloudového prostředí, nakonfigurujte následující nastavení.
① Změna bind-address
Upravte konfigurační soubor:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Najděte následující řádek:
bind-address = 127.0.0.1
Pro povolení externích připojení změňte na:
bind-address = 0.0.0.0
Po uložení restartujte MariaDB:
sudo systemctl restart mariadb
② Otevřete port 3306 ve firewallu
Pokud používáte UFW na Ubuntu:
sudo ufw allow 3306
sudo ufw reload
Pro zvýšení bezpečnosti uveďte zdrojovou IP adresu:
sudo ufw allow from 192.168.1.10 to any port 3306
③ Vytvoření uživatele pro vzdálený přístup
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
Pro vyšší bezpečnost:
CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';
Kontrolní seznam, pokud se nemůžete připojit externě
1. Běží MariaDB?
sudo systemctl status mariadb
2. Naslouchá port 3306?
sudo ss -tulnp | grep 3306
Pokud zobrazí 0.0.0.0:3306, naslouchá správně na všech rozhraních.
3. Pokud používáte cloudové prostředí (AWS / GCP / VPS)
- Ujistěte se, že port 3306 je otevřen ve skupině zabezpečení
- Potvrďte, že žádný externí firewall neblokuje připojení
4. Příčiny podle chybové zprávy
Nelze se připojit k MySQL serveru
- Port je uzavřen
- bind-address nebyl změněn
- Firewall blokuje připojení
Přístup odmítnut pro uživatele
- Nesprávná specifikace hostitele uživatele
- Nesprávné heslo
- Oprávnění nebyla udělena
Připojení vypršelo
- Bezpečnostní nastavení na straně cloudu
- Problémy s routováním sítě
Důležité bezpečnostní poznámky
- Vyhněte se používání “%” v produkčních prostředích
- Používejte VPN přístup, kdykoli je to možné
- Zvažte povolení SSL/TLS připojení
- Nikdy nepovolujte vzdálené přihlášení root
Řešení problémů, když MariaDB selže při spuštění (chyba selhání)
① Zkontrolujte stav služby
sudo systemctl status mariadb
② Zkontrolujte podrobné logy
sudo journalctl -xe
sudo cat /var/log/mysql/error.log
③ Časté příčiny
- Chyby syntaxe konfiguračního souboru
- Nedostatek místa na disku
- Konflikt portu (MySQL již běží)
④ Zkontrolujte volné místo na disku
df -h
Shrnutí příčin chyby přístupu odmítnut
- Nesprávné heslo
- Nesprávná specifikace hostitele (rozdíl mezi localhost a %)
- Nebyl proveden příkaz FLUSH PRIVILEGES
- Pokus o standardní přihlášení jako root (vyžaduje
sudo mysql)
Základní vylepšení výkonu (pro začátečníky)
Advanced tuning is not required, but at minimum, confirm the following settings.
① Povolit protokol pomalých dotazů
Add the following to 50-server.cnf:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
Restart MariaDB:
sudo systemctl restart mariadb
② Zkontrolovat využití indexů
Slow queries may be missing proper indexes.
EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';
③ Zkontrolovat zdroje serveru
top
htop
If memory is insufficient, consider upgrading your server plan.
Často kladené otázky (FAQ)
How can I lock the MariaDB version on Ubuntu 22.04?
Use apt-mark hold mariadb-server.
How do I reset the root password if I forgot it?
You can reset it by starting in safe mode and reconfiguring the password. See our dedicated guide for detailed steps.
How do I change the MariaDB port number?
Modify 50-server.cnf to something like port = 3307, then restart the service.
Závěr: Bezpečné používání MariaDB na Ubuntu
- Using the default repository version is the safest option
- Always run mysql_secure_installation
- Never use root for application connections
- Enable remote access only when necessary
- When troubleshooting, checking logs is the top priority
By following these steps, you can build a secure and production-ready MariaDB environment on Ubuntu.


