# 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! 🚀


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ititanhosting.ro/docs/romana/vps/linux/instalare-mariadb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
