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 |
| Port | 3306 |
| Nume de utilizator | root |
| 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 |
|---|---|---|
| SSH | 5 autentificări eșuate | 10 minute |
| phpMyAdmin | 5 autentificări eșuate | 1 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| MySQL | 8.4 LTS (Oracle APT) |
| Apache | 2.4 |
| PHP | 8.3 |
| phpMyAdmin | 5.2 |
| Certbot | Cea mai recentă |
| Fail2Ban | 1.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 |