MySQL - pradžios vadovas
MySQL yra populiariausia pasaulyje atvirojo kodo reliacinė duomenų bazė, kurią naudoja milijonai programų – nuo mažų svetainių iki didelių įmonių sistemų. Šiame serveryje MySQL 8.4 LTS visiškai sukonfigūruotas su root slaptažodžiu, kurį nurodėte užsakydami. Duomenų bazėms valdyti per žiniatinklį įdiegtas phpMyAdmin.
1 žingsnis – Patikrinkite, ar MySQL veikia
Jūsų serverio IP adresas ir root slaptažodis nurodyti kliento skydelio puslapyje Server Details. phpMyAdmin pasiekiamas iškart sukūrus serverį. Atidarykite http://your.server.ip/phpmyadmin naršyklėje ir patikrinkite, ar veikia.
Prisijungimas prie phpMyAdmin:
- Naudotojo vardas:
root - Slaptažodis: MySQL Root Password, kurį įvedėte užsakydami
Su phpMyAdmin galite kurti duomenų bazes, vykdyti SQL užklausas, importuoti/eksportuoti duomenis ir valdyti naudotojus be komandinės eilutės.
Duomenų bazių serveriams vieša interneto prieiga nereikalinga. Saugiai prieigai patalpinkite serverį privačiame tinkle už VyOS maršrutizatoriaus ir prie MySQL bei phpMyAdmin junkitės per VPN privačiu serverio IP.
2 žingsnis – Nuotolinis prisijungimas prie MySQL
MySQL sukonfigūruotas priimti nuotolinius prisijungimus. Prisijungti galite iš bet kurios programos ar įrankio:
mysql -h your.server.ip -u root -p
Prisijungimo duomenys grafiniams duomenų bazių įrankiams (MySQL Workbench, DBeaver, HeidiSQL ir kt.):
| Parametras | Reikšmė |
|---|---|
| Mazgas | your.server.ip |
| Prievadas | 3306 |
| Naudotojo vardas | root |
| Slaptažodis | MySQL Root Password iš užsakymo |
Pastaba: 3306 prievadas yra MySQL protokolas, ne HTTP – naršyklėje jo atidaryti negalima. Naudokite duomenų bazės klientą arba aukščiau pateiktą komandą.
3 žingsnis – SSL įjungimas phpMyAdmin (neprivaloma)
Jei į šį serverį nukreiptas jūsų domenas, phpMyAdmin galite įjungti HTTPS su nemokamu Let’s Encrypt sertifikatu. Prisijunkite per SSH ir paleiskite:
ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com
Scenarijus patikrins DNS, gaus sertifikatą ir automatiškai sukonfigūruos Apache HTTPS. Baigus, phpMyAdmin pasiekiamas adresu https://db.yourdomain.com/phpmyadmin.
Pastaba: Prieš paleisdami scenarijų įsitikinkite, kad jūsų domeno A įrašas nukreiptas į serverio IP. SSL neprivalomas – phpMyAdmin puikiai veikia per HTTP pasiekiant IP adresu.
Duomenų bazių valdymas
Papildomų duomenų bazių kūrimas
Papildomas duomenų bazes galite sukurti per phpMyAdmin arba 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;
Importas ir eksportas
Per phpMyAdmin: Naudokite skirtukus Import/Export – palaikomi SQL, CSV ir kiti formatai. Didžiausias įkeliamo failo dydis – 64 MB.
Per komandinę eilutę:
# Export
mysqldump -u root -p your_database > backup.sql
# Import
mysql -u root -p your_database < backup.sql
Didelėms duomenų bazėms (virš 64 MB) vietoj phpMyAdmin naudokite komandinę eilutę.
Po įdiegimo
Fail2Ban – apsauga nuo slaptažodžių spėjimo atakų
Jūsų serveryje įdiegta Fail2Ban iš anksto sukonfigūruotas apsaugoti SSH ir phpMyAdmin nuo slaptažodžių spėjimo atakų.
| Taisyklė | Maks. bandymų | Blokavimo trukmė |
|---|---|---|
| SSH | 5 nesėkmingi prisijungimai | 10 minučių |
| phpMyAdmin | 5 nesėkmingi prisijungimai | 1 valanda |
Naudingos komandos:
# Check banned IPs
fail2ban-client status phpmyadmin
fail2ban-client status sshd
# Unban an IP
fail2ban-client set phpmyadmin unbanip 1.2.3.4
Jei netyčia užsiblokavote, prisijunkite per VNC konsolę kliento skydelyje ir atblokuokite savo IP.
Paslaugų valdymas
MySQL ir žiniatinklio stekas veikia per systemd. Dažnos komandos:
# Check service status
systemctl status mysql
systemctl status apache2
# Restart MySQL
systemctl restart mysql
# View MySQL logs
journalctl -u mysql -n 100
MySQL našumo derinimas
InnoDB buffer pool per pirmąjį paleidimą automatiškai nustatomas į 50 % RAM. Dabartinę reikšmę patikrinsite taip:
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Norėdami pakeisti rankiniu būdu, redaguokite /etc/mysql/mysql.conf.d/99-tuning.cnf ir paleiskite MySQL iš naujo:
systemctl restart mysql
Serverio prisijungimo duomenys
MySQL root slaptažodis saugomas /root/.mysql_credentials.
Kas sukonfigūruota iš anksto
- Nuotolinė prieiga: MySQL priima prisijungimus iš bet kurio IP per 3306 prievadą
- InnoDB buffer pool: Per pirmąjį paleidimą automatiškai nustatomas į 50 % turimos RAM
- Performance schema: Serveriuose su mažiau nei 2 GB RAM išjungta, kad būtų taupomi ištekliai
- PHP įkėlimai: Didžiausias failo dydis 64 MB (phpMyAdmin importams)
Įdiegta programinė įranga
| Komponentas | Versija |
|---|---|
| Ubuntu | 24.04 LTS |
| MySQL | 8.4 LTS (Oracle APT) |
| Apache | 2.4 |
| PHP | 8.3 |
| phpMyAdmin | 5.2 |
| Certbot | Naujausia |
| Fail2Ban | 1.0 |
Trikčių šalinimas
| Problema | Sprendimas |
|---|---|
| Nepavyksta nuotoliniu būdu prisijungti prie MySQL | Patikrinkite, ar ugniasienė neblokuoja 3306 prievado. Įsitikinkite, kad naudotojas turi host '%' (ne 'localhost') |
| phpMyAdmin rodo prisijungimo klaidą | Patikrinkite MySQL slaptažodį. Root prisijungimo duomenys yra /root/.mysql_credentials |
| phpMyAdmin importas nepavyksta (per didelis failas) | Didžiausias įkėlimas – 64 MB. Didesniems failams naudokite mysql -u root -p dbname < file.sql per SSH |
| MySQL nepasileidžia | Žurnalų tikrinimas: journalctl -u mysql -n 50. Dažna priežastis: pilnas diskas (df -h /) |
| Pamiršote MySQL root slaptažodį | Prisijunkite per SSH ir patikrinkite /root/.mysql_credentials |
| Užblokavo Fail2Ban | Atblokuokite savo IP per VNC konsolę kliento skydelyje |
| Pamiršote root slaptažodį | Atkurkite jį per VNC konsolę kliento skydelyje |