Table des matières

Installation d'un serveur MariaDB sous Ubuntu 22.04

Source: https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04-quickstart-fr

Installer le serveur

sudo apt install mariadb-server

Vérifier qu'il fonctionne :

sudo systemctl status mariadb

Sécurisation

sudo mariadb-secure-installation

Répondre aux questions :

Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication [Y/n] N
Change the root password? [Y/n] N
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Création d'un utilisateur admin

sudo mariadb

Créer l'utilisateur admin@localhost et lui donner un mot de passe XXXXXX :

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'XXXXXX' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Tester le compte admin avec cette commande :

mariadb-admin -u admin -p version

Création d'une base de données et d'un utilisateur

Pour créer une base de données et un utilisateur ayant tous les droits sur cette base de données (par exemple pour y connecter un CMS) :

Se connecter en ligne de commande :

mariadb -u admin -p

Créer la base de données :

MariaDB [(none)]> create database DATABASE_NAME;

Créer un utilisateur ayant tous les droits sur cette base de données :

MariaDB [(none)]> grant all privileges on DATABASE_NAME.* TO 'USER_NAME'@'localhost' identified by 'PASSWORD';

Appliquer les privilèges :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

Installation de phpMyAdmin

sudo apt install php-mysql php-mbstring

Téléchargement

cd /home/marc
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip
unzip phpMyAdmin-5.2.0-all-languages.zip

Cela crée un dossier /home/marc/phpMyAdmin-5.2.0-all-languages

sudo mv /home/marc/phpMyAdmin-5.2.0-all-languages /var/www
sudo chown -R www-data:www-data /var/www/phpMyAdmin-5.2.0-all-languages

Configuration

cd /var/www/phpMyAdmin-5.2.0-all-languages
sudo cp config.sample.inc.php config.inc.php
openssl rand -base64 32
config.inc.php
...
$cfg['blowfish_secret'] = 'UNE SUITE DE CARACTERES ALEATOIRES';
...

VirtualHost

phpmyadmin.localhost.conf
<VirtualHost *:80>
        ServerName phpmyadmin.localhost
        ServerAdmin marc@localhost
 
        DocumentRoot /var/www/phpMyAdmin-5.2.0-all-languages
        <Directory /var/www/phpMyAdmin-5.2.0-all-languages>
                Options Indexes FollowSymLinks Multiviews
                AllowOverride all
                Require all denied
                Require all granted
                Allow from all
        </Directory>
 
        ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.localhost/error.log
        CustomLog ${APACHE_LOG_DIR}/phpmyadmin.localhost/access.log combined
</VirtualHost>
sudo a2ensite phpmyadmin.localhost.conf
sudo systemctl reload apache2
sudo apachectl configtest