Table of Contents

MySQL - ghid de inițiere

MySQL este cea mai populară bază de date relațională open-source din lume, folosită de milioane de aplicații, de la site-uri mici la sisteme enterprise de mari dimensiuni. Serverul vine cu MySQL 8.4 LTS complet configurat, cu parola root specificată la comandă. phpMyAdmin este inclus pentru administrarea bazelor de date prin web.


Pasul 1 – Verificați funcționarea MySQL

Adresa IP și parola root a serverului sunt afișate pe pagina Server Details din panoul clientului. phpMyAdmin este disponibil imediat după crearea serverului. Deschideți http://your.server.ip/phpmyadmin în browser pentru a verifica funcționarea.

Autentificare phpMyAdmin:

  • Nume de utilizator: root
  • Parolă: MySQL Root Password introdusă la comandă

Cu phpMyAdmin puteți crea baze de date, rula interogări SQL, importa/exporta date și administra utilizatori fără linie de comandă.

Serverele de baze de date nu au nevoie de acces public la internet. Pentru acces securizat, plasați serverul într-o rețea privată în spatele unui router VyOS și conectați-vă prin VPN la MySQL și phpMyAdmin pe IP-ul privat al serverului.


Pasul 2 – Conectarea la distanță la MySQL

MySQL este configurat să accepte conexiuni la distanță. Vă puteți conecta din orice aplicație sau instrument:

mysql -h your.server.ip -u root -p

Date de conectare pentru instrumentele grafice de baze de date (MySQL Workbench, DBeaver, HeidiSQL etc.):

Parametru Valoare
Gazdăyour.server.ip
Port3306
Nume de utilizatorroot
ParolăMySQL Root Password din comandă

Notă: Portul 3306 este protocolul MySQL, nu HTTP – nu poate fi deschis în browser. Folosiți un client de baze de date sau comanda de mai sus.


Pasul 3 – Activarea SSL pentru phpMyAdmin (opțional)

Dacă aveți un domeniu care indică acest server, puteți activa HTTPS pentru phpMyAdmin cu un certificat gratuit Let’s Encrypt. Conectați-vă prin SSH și rulați:

ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com

Scriptul va verifica DNS-ul, va obține un certificat și va configura automat Apache pentru HTTPS. După finalizare, phpMyAdmin este disponibil la https://db.yourdomain.com/phpmyadmin.

Notă: Asigurați-vă că înregistrarea A a domeniului indică IP-ul serverului înainte de a rula scriptul. SSL este opțional – phpMyAdmin funcționează bine prin HTTP cu acces pe adresa IP.


Administrarea bazelor de date

Crearea bazelor de date suplimentare

Puteți crea baze de date suplimentare prin phpMyAdmin sau 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 și export

Prin phpMyAdmin: Folosiți filele Import/Export – acceptă SQL, CSV și alte formate. Dimensiunea maximă de încărcare este 64 MB.

Prin linia de comandă:

# Export
mysqldump -u root -p your_database > backup.sql

# Import
mysql -u root -p your_database < backup.sql

Pentru baze de date mari (peste 64 MB), folosiți linia de comandă în locul phpMyAdmin.


După instalare

Fail2Ban – protecție împotriva atacurilor brute-force

Serverul dumneavoastră include Fail2Ban preconfigurat pentru a proteja atât SSH, cât și phpMyAdmin împotriva atacurilor brute-force.

Regulă Încercări maxime Durata blocării
SSH5 autentificări eșuate10 minute
phpMyAdmin5 autentificări eșuate1 oră

Comenzi utile:

# Check banned IPs
fail2ban-client status phpmyadmin
fail2ban-client status sshd

# Unban an IP
fail2ban-client set phpmyadmin unbanip 1.2.3.4

Dacă vă blocați accidental, conectați-vă prin consola VNC din panoul clientului și deblocați-vă IP-ul.

Administrarea serviciilor

MySQL și stack-ul web rulează prin systemd. Comenzi uzuale:

# Check service status
systemctl status mysql
systemctl status apache2

# Restart MySQL
systemctl restart mysql

# View MySQL logs
journalctl -u mysql -n 100

Optimizarea performanței MySQL

InnoDB buffer pool este setat automat la 50% din RAM la prima pornire. Pentru a verifica valoarea curentă:

mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"

Pentru ajustare manuală, editați /etc/mysql/mysql.conf.d/99-tuning.cnf și reporniți MySQL:

systemctl restart mysql

Datele de acces la server

Parola root MySQL este stocată în /root/.mysql_credentials.

Ce este preconfigurat

  • Acces la distanță: MySQL acceptă conexiuni de la orice IP pe portul 3306
  • InnoDB buffer pool: Ajustat automat la 50% din RAM-ul disponibil la prima pornire
  • Performance schema: Dezactivat pe serverele cu mai puțin de 2 GB RAM pentru a economisi resurse
  • Încărcări PHP: Dimensiune maximă a fișierului 64 MB (pentru importuri în phpMyAdmin)

Software inclus

Componentă Versiune
Ubuntu24.04 LTS
MySQL8.4 LTS (Oracle APT)
Apache2.4
PHP8.3
phpMyAdmin5.2
CertbotCea mai recentă
Fail2Ban1.0

Depanare

Problemă Soluție
Nu se poate conecta la MySQL de la distanță Verificați că portul 3306 nu este blocat de firewall. Verificați că utilizatorul are host-ul '%' (nu 'localhost')
phpMyAdmin afișează o eroare de autentificare Verificați parola MySQL. Datele root se află în /root/.mysql_credentials
Importul în phpMyAdmin eșuează (fișier prea mare) Încărcarea maximă este 64 MB. Pentru fișiere mai mari, folosiți mysql -u root -p dbname < file.sql prin SSH
MySQL nu pornește Verificarea logurilor: journalctl -u mysql -n 50. Cauză frecventă: disc plin (df -h /)
Ați uitat parola root MySQL Conectați-vă prin SSH și verificați /root/.mysql_credentials
Blocat de Fail2Ban Deblocați-vă IP-ul prin consola VNC din panoul clientului
Ați uitat parola root Resetați-o prin consola VNC din panoul clientului