MySQL - průvodce pro začátečníky
MySQL je nejoblíbenější open-source relační databáze na světě, kterou používají miliony aplikací od malých webů po rozsáhlé podnikové systémy. Server obsahuje plně nakonfigurovaný MySQL 8.4 LTS s heslem root, které jste zadali při objednávce. Pro správu databází přes web je k dispozici phpMyAdmin.
Krok 1 – Ověřte, že MySQL funguje
IP adresa a heslo root vašeho serveru jsou uvedeny na stránce Server Details v klientském panelu. phpMyAdmin je dostupný ihned po vytvoření serveru. Otevřete http://your.server.ip/phpmyadmin v prohlížeči a ověřte, že funguje.
Přihlášení do phpMyAdmin:
- Uživatelské jméno:
root - Heslo: MySQL Root Password, které jste zadali při objednávce
V phpMyAdmin můžete vytvářet databáze, spouštět SQL dotazy, importovat/exportovat data a spravovat uživatele bez příkazového řádku.
Databázové servery nepotřebují veřejný přístup z internetu. Pro bezpečný přístup umístěte server do privátní sítě za router VyOS a k MySQL a phpMyAdmin se připojujte přes VPN na privátní IP serveru.
Krok 2 – Vzdálené připojení k MySQL
MySQL je nakonfigurován k přijímání vzdálených připojení. Připojit se můžete z libovolné aplikace nebo nástroje:
mysql -h your.server.ip -u root -p
Údaje pro připojení z grafických databázových nástrojů (MySQL Workbench, DBeaver, HeidiSQL atd.):
| Parametr | Hodnota |
|---|---|
| Hostitel | your.server.ip |
| Port | 3306 |
| Uživatelské jméno | root |
| Heslo | MySQL Root Password z objednávky |
Poznámka: Port 3306 je protokol MySQL, ne HTTP – v prohlížeči ho otevřít nelze. Použijte databázového klienta nebo příkaz výše.
Krok 3 – Zapnutí SSL pro phpMyAdmin (volitelné)
Pokud na tento server směřuje vaše doména, můžete pro phpMyAdmin zapnout HTTPS s bezplatným certifikátem Let’s Encrypt. Připojte se přes SSH a spusťte:
ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com
Skript ověří DNS, získá certifikát a automaticky nastaví Apache pro HTTPS. Po dokončení je phpMyAdmin dostupný na https://db.yourdomain.com/phpmyadmin.
Poznámka: Před spuštěním skriptu se ujistěte, že A záznam vaší domény směřuje na IP serveru. SSL je volitelné – phpMyAdmin funguje bez problémů přes HTTP s přístupem přes IP adresu.
Správa databází
Vytváření dalších databází
Další databáze můžete vytvořit přes phpMyAdmin nebo SSH:
mysql -u root -p
CREATE DATABASE newdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'newuser'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'%';
FLUSH PRIVILEGES;
Import a export
Přes phpMyAdmin: Použijte karty Import/Export – podporují SQL, CSV a další formáty. Maximální velikost nahrávaného souboru je 64 MB.
Přes příkazový řádek:
# Export
mysqldump -u root -p your_database > backup.sql
# Import
mysql -u root -p your_database < backup.sql
U velkých databází (nad 64 MB) použijte místo phpMyAdmin příkazový řádek.
Po instalaci
Fail2Ban – ochrana proti útokům hrubou silou
Váš server obsahuje Fail2Ban předkonfigurovaný k ochraně SSH i phpMyAdmin proti útokům hrubou silou.
| Pravidlo | Max. počet pokusů | Doba blokace |
|---|---|---|
| SSH | 5 neúspěšných přihlášení | 10 minut |
| phpMyAdmin | 5 neúspěšných přihlášení | 1 hodina |
Užitečné příkazy:
# Check banned IPs
fail2ban-client status phpmyadmin
fail2ban-client status sshd
# Unban an IP
fail2ban-client set phpmyadmin unbanip 1.2.3.4
Pokud se omylem zablokujete, připojte se přes konzoli VNC v klientském panelu a odblokujte svou IP.
Správa služeb
MySQL a webový stack běží přes systemd. Běžné příkazy:
# Check service status
systemctl status mysql
systemctl status apache2
# Restart MySQL
systemctl restart mysql
# View MySQL logs
journalctl -u mysql -n 100
Ladění výkonu MySQL
InnoDB buffer pool se při prvním startu automaticky nastaví na 50 % RAM. Aktuální hodnotu zjistíte takto:
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Pro ruční úpravu upravte /etc/mysql/mysql.conf.d/99-tuning.cnf a restartujte MySQL:
systemctl restart mysql
Přihlašovací údaje serveru
Heslo root pro MySQL je uloženo v /root/.mysql_credentials.
Co je předkonfigurováno
- Vzdálený přístup: MySQL přijímá připojení z libovolné IP na portu 3306
- InnoDB buffer pool: Automaticky nastaven na 50 % dostupné RAM při prvním startu
- Performance schema: Na serverech s méně než 2 GB RAM vypnuto kvůli úspoře prostředků
- Nahrávání v PHP: Max. velikost souboru 64 MB (pro importy v phpMyAdmin)
Zahrnutý software
| Komponenta | Verze |
|---|---|
| Ubuntu | 24.04 LTS |
| MySQL | 8.4 LTS (Oracle APT) |
| Apache | 2.4 |
| PHP | 8.3 |
| phpMyAdmin | 5.2 |
| Certbot | Nejnovější |
| Fail2Ban | 1.0 |
Řešení problémů
| Problém | Řešení |
|---|---|
| Nelze se vzdáleně připojit k MySQL | Zkontrolujte, že port 3306 neblokuje firewall. Ověřte, že uživatel má host '%' (ne 'localhost') |
| phpMyAdmin hlásí chybu přihlášení | Ověřte heslo MySQL. Přihlašovací údaje root jsou v /root/.mysql_credentials |
| Import v phpMyAdmin selže (příliš velký soubor) | Maximum nahrávání je 64 MB. Pro větší soubory použijte mysql -u root -p dbname < file.sql přes SSH |
| MySQL se nespustí | Kontrola logů: journalctl -u mysql -n 50. Častá příčina: plný disk (df -h /) |
| Zapomenuté heslo root pro MySQL | Připojte se přes SSH a zkontrolujte /root/.mysql_credentials |
| Blokováno službou Fail2Ban | Odblokujte svou IP přes konzoli VNC v klientském panelu |
| Zapomenuté heslo root | Obnovte jej přes konzoli VNC v klientském panelu |