Désactiver le préchargeur
Explorez, Apprenez et Maîtrisez

Documentation et Tutoriels - Hébergement Web Caramania.Ca

avec Nos Documentation et Tutoriels

Découvrez notre vaste bibliothèque de documentation et de tutoriels conçus pour vous aider à tirer le meilleur parti des services Caramania.Ca. Que vous soyez un débutant cherchant à configurer votre premier site web ou un utilisateur avancé désireux d'explorer des fonctionnalités plus complexes, nos guides pas à pas vous accompagneront à chaque étape. Simplifiez la gestion de vos services, trouvez des solutions rapides à vos problèmes, et approfondissez vos connaissances grâce à notre centre de ressources complet.

Documentation / Tutoriels Linux / Bases de données / Installer MySQL ou MariaDB sur Ubuntu, Debian et AlmaLinux
Bahanos
09/01/2025
Débutant
15 minutes

Prérequis

  • Un serveur Ubuntu/Debian ou AlmaLinux 9/Rocky Linux 9
  • Accès root ou sudo

MySQL et MariaDB sont les systèmes de bases de données relationnelles les plus populaires. MariaDB est un fork open source de MySQL, totalement compatible. Ce guide couvre les deux.

Option 1 : Installer MariaDB (recommandé)

Installation MariaDB (Ubuntu/Debian)
apt update
apt install -y mariadb-server mariadb-client

# Vérifier
systemctl status mariadb
mariadb --version
Installation MariaDB (AlmaLinux/Rocky Linux)
dnf install -y mariadb-server mariadb

# Activer et démarrer
systemctl enable mariadb
systemctl start mariadb

# Vérifier
systemctl status mariadb
mariadb --version

Option 2 : Installer MySQL

Installation MySQL (Ubuntu/Debian)
apt update
apt install -y mysql-server mysql-client

# Vérifier
systemctl status mysql
mysql --version
Installation MySQL (AlmaLinux/Rocky Linux)
dnf install -y mysql-server

# Activer et démarrer
systemctl enable mysqld
systemctl start mysqld

# Vérifier
systemctl status mysqld
mysql --version

1. Sécuriser l'installation

Script de sécurisation
# Lancer le script de sécurisation
mysql_secure_installation

# Répondez aux questions :
# - Set root password: Y (définir un mot de passe fort)
# - Remove anonymous users: Y
# - Disallow root login remotely: Y
# - Remove test database: Y
# - Reload privilege tables: Y

2. Se connecter à MySQL/MariaDB

Connexion
# En tant que root (avec sudo)
sudo mysql

# Ou avec mot de passe
mysql -u root -p

3. Créer une base de données et un utilisateur

Commandes SQL
-- Créer une base de données
CREATE DATABASE ma_base CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Créer un utilisateur
CREATE USER 'mon_user'@'localhost' IDENTIFIED BY 'mot_de_passe_securise';

-- Donner les droits sur la base
GRANT ALL PRIVILEGES ON ma_base.* TO 'mon_user'@'localhost';

-- Appliquer les changements
FLUSH PRIVILEGES;

-- Vérifier
SHOW DATABASES;
SELECT user, host FROM mysql.user;

4. Autoriser les connexions distantes (optionnel)

Configuration pour accès distant
# Éditer la configuration
nano /etc/mysql/mariadb.conf.d/50-server.cnf
# Ou pour MySQL :
# nano /etc/mysql/mysql.conf.d/mysqld.cnf

# Changer bind-address de 127.0.0.1 à 0.0.0.0
bind-address = 0.0.0.0

# Redémarrer
systemctl restart mariadb  # ou mysql
Fichier de configuration sur AlmaLinux/Rocky Linux

Sur AlmaLinux/Rocky Linux, le fichier de configuration MariaDB se trouve dans /etc/my.cnf.d/mariadb-server.cnf. Pour MySQL, utilisez /etc/my.cnf.

Créer un utilisateur distant
-- Créer un utilisateur accessible depuis n'importe où
CREATE USER 'mon_user'@'%' IDENTIFIED BY 'mot_de_passe_securise';
GRANT ALL PRIVILEGES ON ma_base.* TO 'mon_user'@'%';
FLUSH PRIVILEGES;

-- Ou depuis une IP spécifique
CREATE USER 'mon_user'@'192.168.1.100' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON ma_base.* TO 'mon_user'@'192.168.1.100';
FLUSH PRIVILEGES;
Sécurité

N'autorisez les connexions distantes que si nécessaire. Utilisez un pare-feu pour limiter les IP autorisées sur le port 3306.

5. Ouvrir le port dans le pare-feu

UFW (Ubuntu/Debian)
# Autoriser depuis une IP spécifique (recommandé)
ufw allow from 192.168.1.100 to any port 3306

# Ou autoriser tout le monde (dangereux)
# ufw allow 3306/tcp
Firewalld (AlmaLinux/Rocky Linux)
# Autoriser depuis une IP spécifique (recommandé)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

# Ou autoriser tout le monde (dangereux)
# firewall-cmd --permanent --add-port=3306/tcp
# firewall-cmd --reload

6. Importer/Exporter des bases

Backup et restore
# Exporter une base de données
mysqldump -u root -p ma_base > ma_base_backup.sql

# Exporter toutes les bases
mysqldump -u root -p --all-databases > all_databases.sql

# Exporter avec compression
mysqldump -u root -p ma_base | gzip > ma_base_backup.sql.gz

# Importer une base
mysql -u root -p ma_base < ma_base_backup.sql

# Importer depuis un fichier compressé
gunzip < ma_base_backup.sql.gz | mysql -u root -p ma_base

7. Commandes SQL utiles

Commandes courantes
-- Lister les bases
SHOW DATABASES;

-- Utiliser une base
USE ma_base;

-- Lister les tables
SHOW TABLES;

-- Structure d'une table
DESCRIBE ma_table;

-- Supprimer une base
DROP DATABASE ma_base;

-- Supprimer un utilisateur
DROP USER 'mon_user'@'localhost';

-- Voir les processus en cours
SHOW PROCESSLIST;

-- Taille des bases
SELECT table_schema AS 'Database', 
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' 
FROM information_schema.tables 
GROUP BY table_schema;

8. Configuration de performance

Optimisations pour serveur avec 4 Go RAM
# Éditer la configuration
nano /etc/mysql/mariadb.conf.d/50-server.cnf

# Ajouter dans [mysqld] :
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 150
query_cache_size = 64M
query_cache_type = 1
tmp_table_size = 64M
max_heap_table_size = 64M

# Redémarrer
systemctl restart mariadb
Configuration sur AlmaLinux/Rocky Linux

Sur AlmaLinux/Rocky Linux, éditez /etc/my.cnf.d/mariadb-server.cnf (MariaDB) ou /etc/my.cnf (MySQL) pour les mêmes paramètres de performance.

9. Script de sauvegarde automatique

Backup quotidien
cat > /opt/mysql_backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y-%m-%d)
KEEP_DAYS=7

mkdir -p $BACKUP_DIR

# Backup de toutes les bases
mysqldump -u root --all-databases | gzip > $BACKUP_DIR/all-databases-$DATE.sql.gz

# Supprimer les vieux backups
find $BACKUP_DIR -type f -mtime +$KEEP_DAYS -delete

echo "Backup completed: $BACKUP_DIR/all-databases-$DATE.sql.gz"
EOF

chmod +x /opt/mysql_backup.sh

# Ajouter au cron (tous les jours à 3h)
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/mysql_backup.sh") | crontab -
MySQL/MariaDB installé !

Votre serveur de base de données est prêt. Vous pouvez maintenant l'utiliser avec vos applications PHP, Node.js, Python, etc.

💬 Écrivez-nous sur Messenger !