O aplicație web nu ar trebui să se conecteze la baza de date folosind contul root. Configurația corectă presupune un server MariaDB sau MySQL, o bază de date separată și un utilizator care are acces numai la baza aplicației.
Pașii de mai jos sunt potriviți pentru Ubuntu Server și Debian. Alege MariaDB sau MySQL, nu le instala pe ambele pe același server fără un motiv tehnic clar.
Alege MariaDB sau MySQL
MariaDB este disponibil în repository-urile distribuțiilor Linux și este frecvent folosit pentru WordPress, aplicații PHP și proiecte open-source. MySQL este alegerea potrivită când aplicația sau furnizorul software cere explicit MySQL ori o versiune certificată a acestuia.
Pentru MariaDB:
sudo apt update
sudo apt install mariadb-server mariadb-client
Pentru MySQL:
sudo apt update
sudo apt install mysql-server
Ubuntu documentează instalarea MySQL prin pachetul mysql-server; după instalare, serviciul ar trebui să pornească automat.
Verifică serviciul și portul
Pentru MariaDB:
sudo systemctl status mariadb
Pentru MySQL:
sudo systemctl status mysql
Verifică dacă serverul ascultă pe portul standard 3306:
sudo ss -ltnp | grep ':3306'
Pentru o aplicație și o bază de date aflate pe același server, rezultatul ideal indică 127.0.0.1:3306. Asta înseamnă că baza de date acceptă conexiuni locale, fără să fie expusă direct în internet.
Nu deschide portul 3306 în UFW sau în firewall-ul furnizorului VPS dacă aplicația rulează pe aceeași mașină. Ubuntu arată că expunerea în rețea se controlează prin directiva bind-address; aceasta trebuie schimbată numai când există un server de aplicație separat și o rețea privată controlată.
Rulează verificarea inițială de securitate
Pentru MariaDB:
sudo mariadb-secure-installation
Pentru MySQL:
sudo mysql_secure_installation
Aceste utilitare pot elimina utilizatorii anonimi, baza de test și accesul administrativ remote. În versiunile moderne MariaDB, autentificarea locală prin Unix socket este folosită implicit în multe instalări, astfel că nu este obligatoriu să setezi o parolă clasică pentru contul administrativ root. Citește fiecare întrebare înainte să confirmi.
Intră în consola bazei de date
Pentru MariaDB:
sudo mariadb
Pentru MySQL pe Ubuntu:
sudo mysql
Instalarea Ubuntu configurează în mod normal contul MySQL root@localhost pentru autentificare locală prin auth_socket, ceea ce permite administrarea prin sudo fără o parolă MySQL separată.
Creează baza de date
În consola SQL, rulează:
CREATE DATABASE aplicatie_web
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
utf8mb4 permite stocarea completă a caracterelor Unicode, inclusiv diacritice și emoji. CREATE DATABASE poate seta explicit setul de caractere și collation-ul bazei.
Verifică rezultatul:
SHOW DATABASES;
Creează utilizatorul aplicației
Creează un cont care se poate conecta numai local:
CREATE USER 'webapp'@'localhost'
IDENTIFIED BY 'INLOCUIESTE_CU_O_PAROLA_LUNGA_SI_UNICA';
Folosește o parolă generată de un password manager. Nu reutiliza parola contului SSH și nu o include în capturi de ecran, repository-uri Git sau documentație publică.
Un utilizator nou nu primește automat acces la baze de date; privilegiile trebuie acordate separat.
Acordă numai permisiunile necesare
Pentru o aplicație care își execută propriile migrări:
GRANT SELECT, INSERT, UPDATE, DELETE,
CREATE, ALTER, INDEX, DROP
ON aplicatie_web.*
TO 'webapp'@'localhost';
Verifică permisiunile:
SHOW GRANTS FOR 'webapp'@'localhost';
Accesul este limitat la aplicatie_web.*, nu la toate bazele serverului. SHOW GRANTS afișează privilegiile atribuite unui cont.
Nu este necesar să rulezi FLUSH PRIVILEGES după CREATE USER și GRANT; aceste comenzi aplică modificările prin sistemul normal de administrare a conturilor.
Ieși din consolă:
EXIT;
Testează contul aplicației
Pentru MariaDB:
mariadb -u webapp -p aplicatie_web
Pentru MySQL:
mysql -u webapp -p aplicatie_web
După conectare:
SELECT DATABASE(), CURRENT_USER();
SHOW TABLES;
Dacă autentificarea funcționează, folosește în configurația aplicației:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aplicatie_web
DB_USERNAME=webapp
DB_PASSWORD=parola_generata
Fișierul .env nu trebuie să fie accesibil public și nu trebuie trimis în Git.
Creează primul backup
Pentru MySQL:
mysqldump -u webapp -p aplicatie_web > aplicatie_web.sql
Pentru MariaDB:
mariadb-dump -u webapp -p aplicatie_web > aplicatie_web.sql
Contul va avea nevoie de privilegii suficiente pentru conținutul exportat. Păstrează backup-ul în afara directorului public al site-ului și testează periodic restaurarea.
Configurația corectă înseamnă: motor ales în funcție de aplicație, port neexpus inutil, bază separată, utilizator dedicat și privilegii limitate. Contul root rămâne pentru administrare, nu pentru conexiunile zilnice ale aplicației.
Surse folosite
Ubuntu Server Documentation — instalarea și configurarea MySQL.
MariaDB Documentation — instalare și securizare inițială.
MariaDB Documentation — CREATE DATABASE, CREATE USER și GRANT.
MySQL 8.4 Reference Manual — administrarea utilizatorilor și verificarea privilegiilor.

















































