QNAP [Mémo] Utiliser Adminer pour administrer votre base MariaDB10 sur un NAS QNAP

EVO

Administreur
Membre du personnel
25 Novembre 2019
10 561
2 308
293
/var/run/docker.sock
Utiliser Adminer pour administrer votre base MariaDB10 sur un NAS QNAP

Pré-requis :
- Un NAS QNAP
- Le serveur WEB doit être actif

Sommaire :

1/ Installation de Adminer
2/ Connexion à la base de données
3/ Création d'un utilisateur




1/ Installation de Adminer

Récupérer la dernière version de Adminer sur le site officiel : https://www.adminer.org/#download
1751628369633.png

Cela vous donne un fichier "adminer-5.3.0.php" ( la version peu avoir évolué depuis la création de ce tutoriel ).
On le téléverse dans le dossier "Web" du NAS :
1751628580397.png
1751628545446.png




2/ Connexion à la base de données


Ensuite, avec l'adresse ip de ton serveur, tu accède a adminer :
1676842935369-png.8170


Ici l'adresse de mon serveur est 192.168.100.61 et le fichier adminer ce nomme adminer-5.3.0.php, l'adresse est donc :
http://192.168.100.61/adminer-5.3.0.php

Pour te connecter a MariaDB10 :

Serveur :
127.0.0.1:PORT, par défaut sur QNAP le port de MariaDB10 est 3307, ce qui donne : 127.0.0.1:3307
Utilisateur
: root
Mot de passe : le mot de passe root choisi lors de la 1ere configuration de MariaDB10
Exemple :
1751628453803.png

Une fois connecté, nous pouvons modifier/créer les tables, ou dans Privilèges modifier/créer des utilisateurs, ... :
1676843094703-png.8172




3/ Création d'un utilisateur

Pour créer un utilisateur dans la base de données, une fois connecté avec Adminer, on ce rend dans :
Privilèges > Créer un utilisateur

On arrive la dessus ( l'image n'est pas complète la liste des droits est plus grande ) :
1676914934514-png.8173


En 1, on indique depuis ou la connexion a cette base depuis cet utilisateur est possible. Attention il ne s'agit pas ici de notre connexion a nous. mais du service qui utilisera cet utilisateur.
Exemple, si nous souhaitons héberger un Wordpress, qui a besoin d'un acces est que ce Wordpress est hebergé sur le même serveur que la base de donnée, alors c'est donc "localhost"
Si par contre, la base de données est sur le NAS, mais le Wordpress sur une autre machine du réseau local, par exemple avec l'IP 192.168.100.100, alors il faudra renseigner 192.168.100.100, car c'est cette IP qui souhaitera se connecter !
Il est aussi possible de placer un pourcentage ( % ), cela signifie que les connexions venant de n'importe quelle machine sont acceptées ! Je dé-conseil vivement ! Cela peut etre bien pour un test, mais pas en production !!

En 2, le nom d'utilisateur voulu.


En 3 son mot de passe, en clair. Il sera "Haché" pour être stocké.

En 4, la base de données dont l'utilisateur a le droit d’accès. Le nom de la base de données est a placé avant .*.
Exemple, ou souhaite autoriser notre utilisateur a avoir l’accès uniquement a la table "test", alors en 4 on indique test.*.
Il est aussi possible de placer un astérisque ( * ), cela signifie que l'utilisateur a un acces a toutes les tables, comme ceci : *.* ! Cela est a réservé pour la création d'un utilisateur par exemple dédié a la supervision par exemple, si vous ne souhaiter pas utiliser root. Evitez de donner accès plus que besoin a vos utilisateurs.

En 5, on cochera dans la liste les privilèges de l'utilisateur. Voir https://mariadb.com/kb/en/grant/#priv_level
Pour qu'un utilisateur est un contrôle total sur sa base de données, on cochera "All Privileges".




2025-07-04 - Mise à jour du tuto pour la version 5.3.0 d'Adminer
2023-02-20 - Rajout du point 3/ Création d'un utlisateur
2023-02-19 - Création
 
Dernière édition:
  • J'aime
Réactions: Horax
Ça me dit quelque chose ;)
Serait-il possible d'avoir 2 ou 3 info basiques sur "modifier/créer les tables, ou dans Privilèges modifier/créer des utilisateurs, ..."?
En tout cas merci :)
 
je le rajouterai dans le mémo quand j'aurai un peu plus de temps.

Par exemple pour faire un user :

On va dans : Privilèges >Créer un utilisateur
On arrive la dessus ( l'image n'est pas complete la liste des droits est plus grande ) :
1676914934514.png

En 1, on indique depuis ou la connexion a cette base depuis cet utilisateur est possible. Attention il ne s'agit pas ici de notre connexion a nous. mais du service qui utilisera cet utilisateur.
Exemple, si nous souhaitons héberger un Wordpress, qui a besoin d'un acces est que ce Wordpress est hebergé sur le même serveur que la base de donnée, alors c'est donc "localhost"
Si par contre, la base de données est sur le NAS, mais le Wordpress sur une autre machine du réseau local, par exemple avec l'IP 192.168.100.100, alors il faudra renseigner 192.168.100.100, car c'est cette IP qui souhaitera se connecter !
Il est aussi possible de placer un pourcentage ( % ), cela signifie que les connexions venant de n'importe quelle machine sont acceptées ! Je dé-conseil vivement ! Cela peut etre bien pour un test, mais pas en production !!

En 2, le nom d'utilisateur voulu.

Et en 3 son mot de passe, en clair. Il sera "Haché" pour être stocké.

En 4, la base de données dont l'utilisateur a le droit d'acces. Le nom de la base de données est a placé avant .*.
Exemple, ou souhaite autoriser notre utilisateur a avoir l'acces uniquement a la table "test", alors en 4 on indique test.*.
Il est aussi possible de placer un astérisque ( * ), cela signifie que l'utilisateur a un acces a toutes les tables, comme ceci : *.* ! Cela est a réservé pour la création d'un utilisateur par exemple dédié a la supervision par exemple, si vous ne souhaiter pas utiliser root. Evitez de donner accès plus que besoin a vos utilisateurs.

En 5, on cochera dans la liste les privilèges de l'utilisateur. Voir https://mariadb.com/kb/en/grant/#priv_level
Pour qu'un utilisateur est un contrôle total sur sa base de données, on cochera "All Privileges".
 
Lors de la création de la base on doit choisir "Interclassement". J'ai cru comprendre que ça correspond aux caractères que la base peut utiliser. Quel "Interclassement" choisir pour ne pas avoir de problème?

Autre question, les "users", doit on créer autant de "users" que de personnes qui vont utiliser l'app que utilise la DB ou c'est un "user maitre" par app?
 
Lors de la création de la base on doit choisir "Interclassement". J'ai cru comprendre que ça correspond aux caractères que la base peut utiliser. Quel "Interclassement" choisir pour ne pas avoir de problème?
Salut,
Oui c'est une histoire de prise en charge des caractères / majuscules, ... lors de recherche dans la DB.
Voir : https://blog.kodono.info/wordpress/2018/04/28/interclassement-mysql-pour-le-francais/

En général, le concepteur de l'application indique les pré-requis pour la DB, comme par exemple pour Nextcloud :
1677777846263.png

et / ou , le logiciel en question créer lui même la base de données.

Autre question, les "users", doit on créer autant de "users" que de personnes qui vont utiliser l'app que utilise la DB ou c'est un "user maitre" par app?
En général, on a une instance MariaDB avec un user "root", et une fait 1 base de données lié a un utilisateur pour une application.
Ainsi chaque logiciel possède sa propre base de données, gérer par son propre utilisateur et ne peuveut pas faire d'action sur les autres bases de données.
 
Dernière édition:
J'en ai profité pour pour mettre ma DB un peu plus au propre et le vois que sur la page users ma DB est indiquée comme ceci: `linkace_DB`.* au lieu de linkace_DB.* comme dans ton exemple. Normal? pas normal?
 
Hello bonjour,

Oh ben: J'avais pas vu ce tuto...

Pour les accrocs à la ligne de commande... (si, si, y en a ;) ):
  1. Se positionner dans le dossier destination: cd /var/www/adminer
  2. Télécharger la dernière version: curl -L -o index.php https://www.adminer.org/latest.php Notez qu'on télécharge un fichier `index.php`
  3. Optionnellement, un thème (choix perso...): wget https://raw.githubusercontent.com/vrana/adminer/master/designs/hever/adminer.css -O /var/www/adminer/adminer.css

L'intérêt du point 2. c'est que la commande permet aussi la mise à jour, sans rien faire d'autre !
Mais il faut sans doute adapter la config du serveur web / url...

Par exemple, config. pour NGINX:
Code:
lxc-web01:/var/www/adminer$ cat /etc/nginx/http.d/adminer.lxc-web01.conf 
## Contenu Virtualhost service Adminer
server {
    listen         80;
    server_name    adminer.*;
    access_log     /var/log/nginx/adminer.access.log;
    error_log      /var/log/nginx/adminer.error.log;
 
    root           /var/www/adminer;
    index          index.php;
 
    # increase the maximum file upload size if needed: by default nginx limits file upload to 1MB (413 Entity Too Large error)
    client_max_body_size 100m;

    ## service 'adminer' 
    ##------------------
    location /adminer/ {
        try_files $uri $uri/ =404;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Et l'url (hors reverse proxy en amont): http://adminer.lxc-web01/


On doit pouvoir l'adapter au serveur web de QNAP: ça pourrait simplifier les choses, notamment les mises à jour successives, sans URL dédiée (avec la version dedans), scriptable éventuellement...
Nan ?

Merci EVO, @+