22 octombrie 2026 · by Alex M.
MySQL 8 este cel mai popular sistem de gestiune a bazelor de date relaționale din lume și baza majorității aplicațiilor web moderne — de la WordPress și Magento, la aplicații custom în Python sau PHP. Dacă ai un VPS SSD sau un VPS NVMe și vrei să rulezi baze de date rapid și în siguranță, acest ghid îți arată pas cu pas tot ce trebuie să faci: instalare, securizare, configurare pentru performanță, gestionarea utilizatorilor și backup automat.
MySQL 8 aduce îmbunătățiri semnificative față de versiunea 5.7:
caching_sha2_password implicit.Pe un VPS cu resurse dedicate, MySQL 8 exploatează mai bine resursele hardware disponibile față de versiunile mai vechi.
Înainte de a începe, asigură-te că ai:
sudo.Dacă nu ai încă un server, poți alege un plan VPS SSD de la CLIQHOST potrivit nevoilor tale.
Întotdeauna începi cu sistemul la zi:
sudo apt update && sudo apt upgrade -y
Această comandă actualizează lista de pachete și instalează ultimele patch-uri de securitate.
Pe Ubuntu 22.04, MySQL 8 este disponibil direct din repository-ul oficial:
sudo apt install mysql-server -y
Verifică versiunea instalată:
mysql --version
# mysql Ver 8.0.x Distrib 8.0.x, for Linux (x86_64)
Pornește și activează serviciul MySQL la boot:
sudo systemctl start mysql
sudo systemctl enable mysql
Verifică statusul:
sudo systemctl status mysql
Ar trebui să vezi active (running) în verde.
Dacă vrei versiunea cea mai recentă direct de la MySQL:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
sudo apt update
sudo apt install mysql-server -y
MySQL vine cu un script de securizare interactiv pe care trebuie să-l rulezi obligatoriu:
sudo mysql_secure_installation
Scriptul te va întreba:
Y) și să alegi nivelul STRONG (2) pentru parole de producție.Y (elimini utilizatorii anonimi).Y (root nu trebuie să se conecteze remote).Y (ștergi baza de date de test).Y.Aceste setări eliminând vectorii de atac cei mai comuni pentru o bază de date MySQL expusă.
Pe Ubuntu 22.04, utilizatorul root MySQL folosește autentificarea prin socket:
sudo mysql
Sau, dacă ai setat parola:
mysql -u root -p
Odată în consolă, vei vedea prompt-ul mysql>.
Niciodată nu rulezi aplicațiile cu utilizatorul root. Creezi utilizatori dedicați cu permisiuni minime:
-- Creează o bază de date nouă
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Creează un utilizator nou
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'ParolaPuternica!2025';
-- Acordă permisiuni doar pe baza de date specifică
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
-- Aplică modificările
FLUSH PRIVILEGES;
Verifică utilizatorii existenți:
SELECT user, host FROM mysql.user;
Dacă aplicația rulează pe un alt server (ex. un server de aplicații separat):
CREATE USER 'myapp_user'@'192.168.1.100' IDENTIFIED BY 'ParolaPuternica!2025';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'192.168.1.100';
FLUSH PRIVILEGES;
Atenție: accesul remote trebuie limitat strict la IP-uri cunoscute.
Fișierul principal de configurare este /etc/mysql/mysql.conf.d/mysqld.cnf. Editează-l:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Adaugă sau modifică următoarele setări sub secțiunea [mysqld]:
[mysqld]
# Memorie InnoDB Buffer Pool (50-70% din RAM disponibil)
innodb_buffer_pool_size = 512M
# Numărul de instanțe ale buffer pool (1 per GB de buffer pool)
innodb_buffer_pool_instances = 1
# Log file size — InnoDB
innodb_log_file_size = 128M
# Conexiuni simultane maxime
max_connections = 150
# Cache pentru interogări (query cache e dezactivat în MySQL 8, folosim altceva)
# Timeout-uri
wait_timeout = 300
interactive_timeout = 300
# Thread cache
thread_cache_size = 16
# Table cache
table_open_cache = 2000
# Sort buffer (per thread)
sort_buffer_size = 2M
# Slow query log — util pentru debugging
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
# Charset implicit
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
După modificări, repornește MySQL:
sudo systemctl restart mysql
innodb_buffer_pool_size| RAM VPS | Buffer Pool recomandat |
|---|---|
| 1 GB | 512 MB |
| 2 GB | 1 GB |
| 4 GB | 2.5 GB |
| 8 GB | 5 GB |
Pe un VPS NVMe performant, poți aloca mai multă memorie buffer pool pentru a beneficia din plin de viteza discurilor.
Prin default, MySQL ascultă pe 127.0.0.1 (localhost). Verifică:
sudo ss -tlnp | grep mysql
# LISTEN 0 151 127.0.0.1:3306 0.0.0.0:*
Dacă nu ai nevoie de acces remote, lasă bind-address = 127.0.0.1 în configurație — este cea mai sigură setare.
Dacă ai nevoie de acces remote și ai un firewall UFW activ, permite accesul doar de la un IP specific:
sudo ufw allow from 203.0.113.50 to any port 3306
Niciodată nu expui portul 3306 publicului larg (0.0.0.0). Serviciile noastre de administrare server includ și hardening MySQL pentru medii de producție.
Backup-urile sunt esențiale. Creăm un script simplu și un cron job:
sudo nano /usr/local/bin/mysql-backup.sh
Conținutul scriptului:
#!/bin/bash
DATE=$(date +%Y-%m-%d_%H-%M)
BACKUP_DIR="/var/backups/mysql"
MYSQL_USER="root"
MYSQL_PASS="parola_ta_root"
mkdir -p $BACKUP_DIR
# Backup toate bazele de date
mysqldump -u $MYSQL_USER -p$MYSQL_PASS --all-databases --single-transaction \
--quick --lock-tables=false | gzip > $BACKUP_DIR/all-databases-$DATE.sql.gz
# Șterge backup-urile mai vechi de 7 zile
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
echo "Backup finalizat: $BACKUP_DIR/all-databases-$DATE.sql.gz"
Fă scriptul executabil:
sudo chmod +x /usr/local/bin/mysql-backup.sh
Adaugă un cron job pentru backup zilnic la 02:00:
sudo crontab -e
0 2 * * * /usr/local/bin/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1
gunzip < /var/backups/mysql/all-databases-2025-01-15_02-00.sql.gz | mysql -u root -p
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Slow_queries';
SHOW GLOBAL STATUS LIKE 'Questions';
SHOW PROCESSLIST;
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'max_connections';
MySQLTuner este un script Perl care analizează configurația și oferă recomandări concrete:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
perl mysqltuner.pl --user root --pass parola_ta
Outputul îți va arăta ce parametri merită ajustați în funcție de încărcarea reală a serverului.
Dacă migrezi de la 5.7, pașii esențiali sunt:
Backup complet înainte de orice:
mysqldump -u root -p --all-databases > backup-pre-upgrade.sql
Verifică compatibilitatea cu MySQL Shell:
mysqlcheck -u root -p --all-databases --check-upgrade
Actualizează pachetele și rulează:
sudo mysql_upgrade -u root -p
Testează aplicațiile — verifică că autentificarea cu caching_sha2_password este compatibilă cu driverele tale. Dacă nu, poți seta temporar:
ALTER USER 'myapp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'parola';
VALIDATE PASSWORD.GRANT ALL ON *.* unui utilizator aplicatie — folosește permisiuni minime.MySQL 8 pe un VPS Linux este o combinație robustă și performantă pentru orice aplicație web serioasă. Urmând pașii din acest ghid ai o instalare securizată, optimizată pentru resursele serverului tău și cu backup automat configurat.
Dacă vrei să te concentrezi pe aplicații și nu pe administrarea serverului, echipa CLIQHOST oferă servicii de administrare server gestionat în care ne ocupăm de configurarea, securizarea și monitorizarea MySQL pentru tine.
Alege un VPS SSD sau VPS NVMe de la CLIQHOST, potrivit nevoilor proiectului tău, și ai o bază solidă pentru orice aplicație bazată pe MySQL 8. Pentru întrebări sau asistență tehnică, contactează-ne oricând.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."