MySQL - príručka pre začiatočníkov
MySQL je najobľúbenejšia open-source relačná databáza na svete, ktorú používajú milióny aplikácií od malých webov po rozsiahle podnikové systémy. Server obsahuje plne nakonfigurovaný MySQL 8.4 LTS s heslom root, ktoré ste zadali pri objednávke. Na správu databáz cez web je k dispozícii phpMyAdmin.
Krok 1 – Overte, že MySQL funguje
IP adresa a heslo root vášho servera sú uvedené na stránke Server Details v klientskom paneli. phpMyAdmin je dostupný hneď po vytvorení servera. Otvorte http://your.server.ip/phpmyadmin v prehliadači a overte, že funguje.
Prihlásenie do phpMyAdmin:
- Používateľské meno:
root - Heslo: MySQL Root Password, ktoré ste zadali pri objednávke
V phpMyAdmin môžete vytvárať databázy, spúšťať SQL dopyty, importovať/exportovať dáta a spravovať používateľov bez príkazového riadka.
Databázové servery nepotrebujú verejný prístup z internetu. Na bezpečný prístup umiestnite server do privátnej siete za router VyOS a k MySQL a phpMyAdmin sa pripájajte cez VPN na privátnu IP servera.
Krok 2 – Vzdialené pripojenie k MySQL
MySQL je nakonfigurovaný na prijímanie vzdialených pripojení. Pripojiť sa môžete z ľubovoľnej aplikácie alebo nástroja:
mysql -h your.server.ip -u root -p
Údaje na pripojenie z grafických databázových nástrojov (MySQL Workbench, DBeaver, HeidiSQL atď.):
| Parameter | Hodnota |
|---|---|
| Hostiteľ | your.server.ip |
| Port | 3306 |
| Používateľské meno | root |
| Heslo | MySQL Root Password z objednávky |
Poznámka: Port 3306 je protokol MySQL, nie HTTP – v prehliadači ho otvoriť nemožno. Použite databázového klienta alebo príkaz vyššie.
Krok 3 – Zapnutie SSL pre phpMyAdmin (voliteľné)
Ak na tento server smeruje vaša doména, môžete pre phpMyAdmin zapnúť HTTPS s bezplatným certifikátom Let’s Encrypt. Pripojte sa cez SSH a spustite:
ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com
Skript overí DNS, získa certifikát a automaticky nastaví Apache pre HTTPS. Po dokončení je phpMyAdmin dostupný na https://db.yourdomain.com/phpmyadmin.
Poznámka: Pred spustením skriptu sa uistite, že A záznam vašej domény smeruje na IP servera. SSL je voliteľné – phpMyAdmin funguje bez problémov cez HTTP s prístupom cez IP adresu.
Správa databáz
Vytváranie ďalších databáz
Ďalšie databázy môžete vytvoriť cez phpMyAdmin alebo 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
Cez phpMyAdmin: Použite karty Import/Export – podporujú SQL, CSV a ďalšie formáty. Maximálna veľkosť nahrávaného súboru je 64 MB.
Cez príkazový riadok:
# Export
mysqldump -u root -p your_database > backup.sql
# Import
mysql -u root -p your_database < backup.sql
Pri veľkých databázach (nad 64 MB) použite namiesto phpMyAdmin príkazový riadok.
Po inštalácii
Fail2Ban – ochrana proti útokom hrubou silou
Váš server obsahuje Fail2Ban predkonfigurovaný na ochranu SSH aj phpMyAdmin proti útokom hrubou silou.
| Pravidlo | Max. počet pokusov | Doba blokovania |
|---|---|---|
| SSH | 5 neúspešných prihlásení | 10 minút |
| phpMyAdmin | 5 neúspešných prihlásení | 1 hodina |
Užitočné príkazy:
# Check banned IPs
fail2ban-client status phpmyadmin
fail2ban-client status sshd
# Unban an IP
fail2ban-client set phpmyadmin unbanip 1.2.3.4
Ak sa omylom zablokujete, pripojte sa cez konzolu VNC v klientskom paneli a odblokujte svoju IP.
Správa služieb
MySQL a webový stack bežia cez systemd. Bežné príkazy:
# Check service status
systemctl status mysql
systemctl status apache2
# Restart MySQL
systemctl restart mysql
# View MySQL logs
journalctl -u mysql -n 100
Ladenie výkonu MySQL
InnoDB buffer pool sa pri prvom štarte automaticky nastaví na 50 % RAM. Aktuálnu hodnotu zistíte takto:
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Na ručnú úpravu upravte /etc/mysql/mysql.conf.d/99-tuning.cnf a reštartujte MySQL:
systemctl restart mysql
Prihlasovacie údaje servera
Heslo root pre MySQL je uložené v /root/.mysql_credentials.
Čo je predkonfigurované
- Vzdialený prístup: MySQL prijíma pripojenia z ľubovoľnej IP na porte 3306
- InnoDB buffer pool: Automaticky nastavený na 50 % dostupnej RAM pri prvom štarte
- Performance schema: Na serveroch s menej ako 2 GB RAM vypnuté kvôli úspore prostriedkov
- Nahrávanie v PHP: Max. veľkosť súboru 64 MB (pre importy v phpMyAdmin)
Zahrnutý softvér
| Komponent | Verzia |
|---|---|
| Ubuntu | 24.04 LTS |
| MySQL | 8.4 LTS (Oracle APT) |
| Apache | 2.4 |
| PHP | 8.3 |
| phpMyAdmin | 5.2 |
| Certbot | Najnovšia |
| Fail2Ban | 1.0 |
Riešenie problémov
| Problém | Riešenie |
|---|---|
| Nedá sa vzdialene pripojiť k MySQL | Skontrolujte, či port 3306 neblokuje firewall. Overte, že používateľ má host '%' (nie 'localhost') |
| phpMyAdmin hlási chybu prihlásenia | Overte heslo MySQL. Prihlasovacie údaje root sú v /root/.mysql_credentials |
| Import v phpMyAdmin zlyhá (príliš veľký súbor) | Maximum nahrávania je 64 MB. Pre väčšie súbory použite mysql -u root -p dbname < file.sql cez SSH |
| MySQL sa nespustí | Kontrola logov: journalctl -u mysql -n 50. Častá príčina: plný disk (df -h /) |
| Zabudnuté heslo root pre MySQL | Pripojte sa cez SSH a skontrolujte /root/.mysql_credentials |
| Zablokované službou Fail2Ban | Odblokujte svoju IP cez konzolu VNC v klientskom paneli |
| Zabudnuté heslo root | Obnovte ho cez konzolu VNC v klientskom paneli |