# Instalare MariaDB

Ai nevoie de un server de baze de date pe serverul tău? MariaDB este o alegere excelentă - este rapid, fiabil și complet compatibil cu MySQL. Hai să-l instalăm și să-l configurăm corect.

### Pasul 1: Actualizează Sistemul

Întotdeauna începe cu pachetele actualizate:

```bash
# Pentru Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# Pentru CentOS/RHEL
sudo yum update -y
```

### Pasul 2: Instalează MariaDB

#### Ubuntu/Debian:

```bash
sudo apt install mariadb-server mariadb-client -y
```

#### CentOS/RHEL 8+:

```bash
sudo dnf install mariadb-server mariadb -y
```

#### CentOS/RHEL 7:

```bash
sudo yum install mariadb-server mariadb -y
```

### Pasul 3: Pornește și Activează MariaDB

```bash
# Pornește serviciul
sudo systemctl start mariadb

# Activează pornirea automată la boot
sudo systemctl enable mariadb

# Verifică statusul
sudo systemctl status mariadb
```

Ar trebui să vezi "active (running)" în verde.

### Pasul 4: Securizează Instalarea

Acest pas este important! Rulează scriptul de securitate:

```bash
sudo mysql_secure_installation
```

Îți va cere:

1. **Enter current password for root:** Apasă Enter (nu există parolă încă)
2. **Set root password?** Tastează `Y` și scrie o parolă puternică
3. **Remove anonymous users?** Tastează `Y`
4. **Disallow root login remotely?** Tastează `Y` (pentru securitate)
5. **Remove test database?** Tastează `Y`
6. **Reload privilege tables?** Tastează `Y`

### Pasul 5: Configurare de Bază

#### Editează Configurația MariaDB:

```bash
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf  # Ubuntu/Debian
# SAU
sudo nano /etc/my.cnf.d/server.cnf                 # CentOS/RHEL
```

Adaugă acestea în secțiunea `[mysqld]`:

```ini
# Optimizări de performanță pentru VPS
innodb_buffer_pool_size = 256M
query_cache_size = 64M
query_cache_limit = 2M
max_connections = 100
wait_timeout = 600

# Set de caractere
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
```

#### Repornește pentru a aplica modificările:

```bash
sudo systemctl restart mariadb
```

### Pasul 6: Creează o Bază de Date și Utilizator

Pentru securitate, creează utilizatori separați pentru fiecare aplicație:

```bash
# Conectează-te la MariaDB
sudo mysql -u root -p

# Creează baza de date
CREATE DATABASE aplicatia_mea_db;

# Creează utilizatorul
CREATE USER 'utilizator_aplicatie'@'localhost' IDENTIFIED BY 'Parola';

# Acordă privilegii
GRANT ALL PRIVILEGES ON aplicatia_mea_db.* TO 'utilizator_aplicatie'@'localhost';

# Aplică modificările
FLUSH PRIVILEGES;

# Ieși
EXIT;
```

### Pasul 7: Testează Configurația

```bash
# Testează conexiunea cu noul utilizator
mysql -u utilizator_aplicatie -p -D aplicatia_mea_db

# Rulează o interogare de test
SHOW DATABASES;

# Ieși
EXIT;
```

### Pasul 8: Backup pentru Baza de Date

Întotdeauna fă backup-uri! Creează un script simplu de backup:

```bash
nano ~/backup-mysql.sh
```

Adaugă:

```bash
#!/bin/bash
BACKUP_DIR="/home/$(whoami)/backup-mysql"
mkdir -p $BACKUP_DIR
mysqldump -u root -p --all-databases > $BACKUP_DIR/backup-complet-$(date +%Y%m%d).sql
```

Fă-l executabil:

```bash
chmod +x ~/backup-mysql.sh
```

### Probleme Comune și Soluții

#### "Nu mă pot conecta la MariaDB"

```bash
# Verifică dacă serviciul rulează
sudo systemctl status mariadb

# Verifică log-urile de eroare
sudo tail -f /var/log/mysql/error.log
```

#### "Acces refuzat pentru utilizator"

Resetează parola dacă ai uitat-o:

```bash
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root

USE mysql;
UPDATE user SET password=PASSWORD('noua_parola') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

sudo systemctl start mariadb
```

### Comenzi Utile

#### Verifică Versiunea MariaDB:

```bash
mysql --version
```

#### Afișează Procesele Rulează:

```sql
SHOW PROCESSLIST;
```

#### Verifică Dimensiunea Bazelor de Date:

```sql
SELECT table_schema "Baza de Date", 
SUM(data_length + index_length)/1024/1024 "Dimensiune în MB" 
FROM information_schema.TABLES 
GROUP BY table_schema;
```

Gata! Serverul tău MariaDB este pregătit. Nu uita să actualizezi și să faci backup regulat! 🚀
