Table of Contents

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ė
Mazgasyour.server.ip
Prievadas3306
Naudotojo vardasroot
SlaptažodisMySQL 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ė
SSH5 nesėkmingi prisijungimai10 minučių
phpMyAdmin5 nesėkmingi prisijungimai1 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
Ubuntu24.04 LTS
MySQL8.4 LTS (Oracle APT)
Apache2.4
PHP8.3
phpMyAdmin5.2
CertbotNaujausia
Fail2Ban1.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