Installer MariaDB

apt install mariadb-server -y
mysql_secure_installation

Configuration de MariaDB

Modifiez le fichier de configuration de MariaDB (my.cnf ou mariadb.cnf). Sur la plupart des systèmes, il se trouve dans /etc/mysql/ ou /etc/mariadb/.

cd /etc/mysql/
# ou, selon la distribution :
# cd /etc/mariadb/
nano /etc/mysql/mariadb.cnf

Ces valeurs sont également consultables dans phpMyAdmin, via Accueil / Variables et paramètres du serveur.

[mysqld]
#port = 3306
#bind-address = 127.0.0.1
#datadir = /var/lib/mysql
#socket = /var/run/mysqld/mysqld.sock
#log_error = /var/log/mysql/error.log
#pid-file = /var/run/mysqld/mysqld.pid
#
#max_connections = 100
#query_cache_size = 16M
#query_cache_type = 1
#innodb_buffer_pool_size = 256M
#innodb_log_file_size = 64M
#innodb_flush_log_at_trx_commit = 1
#
#skip-networking      # Désactive les connexions réseau, n'autorisant que les connexions locales via le socket Unix.
#skip-name-resolve    # Désactive la résolution de nom d'hôte pour améliorer les performances.
#
#log_bin = /var/log/mysql/mysql-bin.log
#server_id = 1          # Identifiant unique du serveur pour la réplication.
#binlog_format = MIXED  # (ROW, STATEMENT, MIXED)
#relay_log = /var/log/mysql/mysql-relay-bin.log
#
#default_storage_engine = InnoDB
#character_set_server = utf8mb4
#collation_server = utf8mb4_general_ci
systemctl restart mariadb
systemctl status mariadb

# Désinstallation complète
systemctl stop mariadb
apt-get remove --purge mariadb-server mariadb-client mariadb-common
apt-get autoremove
apt-get autoclean
rm -rf /etc/mysql /var/lib/mysql
deluser mysql
delgroup mysql

phpMyAdmin

Accès via http://votre_ip/phpmyadmin.

apt install phpmyadmin -y

apt install pwgen      # générateur de mots de passe en ligne de commande
pwgen -syB 24 1
# -s → mode sécurisé (cryptographique)
# -y → inclure des caractères spéciaux
# -B → pas de caractères ambigus (0, O, l, 1...)

À la question « Faut-il configurer la base de données de phpMyAdmin avec dbconfig-common ? », répondre non permet de conserver la maîtrise de la configuration sans créer d'utilisateurs ou de bases superflus.

-- Accès : http://IP/phpmyadmin/
-- mysql -u root -p

CREATE USER 'admin'@'localhost' IDENTIFIED BY '+@%Xw7YVd5.ceO7uvJ_]';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Générer une clef blowfish_secret pour phpMyAdmin

blowfish_secret sert à sécuriser les cookies ; cette clef est indispensable au bon fonctionnement de phpMyAdmin en mode sécurisé. Elle doit comporter au minimum 32 caractères et être aléatoire.

blowfish=$(pwgen -syB 32 1)
echo "\$cfg['blowfish_secret'] = '$blowfish';"
# ou avec nano :
nano /var/lib/phpmyadmin/blowfish_secret.inc.php

Thèmes alternatifs pour phpMyAdmin (mode sombre)

Quelques dépôts de thèmes sombres :

cd /usr/share/phpmyadmin/themes/
apt install git -y
git clone https://github.com/evilpie/phpmyadmin-dark-theme.git darkmode
systemctl reload apache2
nano /etc/phpmyadmin/config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'phpmyadmin';
$cfg['Servers'][$i]['password'] = 'your_password';

$cfg['UploadDir'] = '';
$cfg['MaxFileSize'] = 16777216; // 16 MB en octets
$cfg['ExecTimeLimit'] = 300;    // 5 minutes

Privilèges et gestion des bases

-- mariadb
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
SHOW GRANTS FOR 'phpmyadmin'@'localhost';
ALTER USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
CREATE USER 'doc_user'@'localhost' IDENTIFIED BY 'doc_password';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'doc_user'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE testdb;
systemctl restart mariadb
systemctl restart apache2
mariadb -u phpmyadmin -p

Désinstaller phpMyAdmin

apt-get remove --purge phpmyadmin
apt-get autoremove
apt-get autoclean
rm -rf /usr/share/phpmyadmin /var/lib/phpmyadmin /etc/phpmyadmin
systemctl restart apache2