Changes

Jump to navigation Jump to search
2,670 bytes added ,  19:27, 24 June 2023
Line 64: Line 64:  
  sv u .
 
  sv u .
   −
Pour le serveur SME 7.2 et les versions précédantes, exécuter ce qui suit (on utilise la commande runsvctrl à la place de la commande sv ) :
+
Pour le serveur SME 7.2 et les versions précédantes, exécuter ce qui suit (on utilise la commande runsvctrl à la place de la commande sv) :
    
  cd /var/service/mysqld
 
  cd /var/service/mysqld
Line 86: Line 86:  
  sv u .
 
  sv u .
   −
==Accès à MariaDB/MySQL en utilisant le port de localhost et du réseau local==
+
==MariaDB/MySQL ne démarre pas==
 +
Vous devez rechercher la cause en inspectant deux journaux :
 +
* le journal du service
 +
journalctl -u mariadb
 +
* le journal de mariadb
 +
tail -f  /var/log/mariadb/mariadb.log
 +
 
 +
===Table utilisateur corrompue===
 +
Votre erreur dans le journal mariadb inclura :
 +
ERROR: 130  Incorrect file format 'user'
 +
 
 +
Cela peut se produire principalement après une panne de courant. La table mysql.user est un type MYSIAM.
 +
# ll /var/lib/mysql/mysql/user.*
 +
-rw-rw---- 1 mysql mysql 10630  3 jui 21:08 /var/lib/mysql/mysql/user.frm
 +
-rw-rw---- 1 mysql mysql  488  3 jui 21:08 /var/lib/mysql/mysql/user.MYD
 +
-rw-rw---- 1 mysql mysql  2048  3 jui 21:08 /var/lib/mysql/mysql/user.MYI
 +
Dans ce cas, vous pouvez voir user.MYD ou user.MYI avec une taille de 0 octet. Si le problème est sur MYI, c'est l'index que vous devriez pouvoir reconstruire, s'il est sur le MYD, ce sont les données, vous aurez besoin d'une sauvegarde à partir de laquelle restaurer.
 +
 
 +
En tant que root, commencez par démarrer mariadb sans authentification (« grant table ») :
 +
systemctl stop mariadb
 +
/usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --skip-grant-tables
 +
{{warning box|type=Attention : |faites attention que mariadb fonctionnera sans aucune authentification d'utilisateur, s'il est ouvert à l'extérieur de votre serveur, vous voudrez peut-être d'abord fermer cet accès et garder cette session aussi courte que possible.}}
 +
Puis utiliser la ligne de commande mysql :
 +
mysqlcheck mysql
 +
Si une erreur s'affiche, essayer :
 +
mysqlcheck mysql --repair
 +
Si cela échoue, vous devez effectuer une restauration. Vous pourriez avoir un « dump » dans /home/e-smith/db/mysql/mysql.dump. En espèrant qu'il soit à jour. Je vous suggère de le copier et d'extraire simplement la partie du tableau qui vous manque.
 +
Vous avez besoin de ce qui est ci-dessous :
 +
--
 +
-- Table structure for table `user`
 +
--
 +
et
 +
--
 +
-- Dumping data for table `user`
 +
--
 +
En considerant que votre table « dump » est maintenant dans un fichier dénommé /home/e-smith/db/mysql/mysql.user.dump, faites :
 +
mysql mysql < /home/e-smith/db/mysql/mysql.user.dump
 +
expand-template /var/lib/mysql/set.password
 +
mysql mysql < /var/lib/mysql/set.password
 +
mysqladmin shutdown
 +
systemctl start mariadb
 +
 
 +
{{warning box|type=Attention : |la ligne de « dump » de la table mysql.user sur le serveur mariadb supprimera toutes les entrées existantes dans la table si vous utilisez le « dump » SME par défaut car il comporte une ligne DROP TABLE IF EXISTS. Ne faites donc cela que si vous savez ce que vous faites.}}
 +
 
 +
==Accès à MariaDB/MySQL en utilisant le port de localhost et à partir du réseau local==
 
MariaDB/MySQL sur le serveur SME fonctionne sur un socket (une interface de connexion) au lieu d'un port.
 
MariaDB/MySQL sur le serveur SME fonctionne sur un socket (une interface de connexion) au lieu d'un port.
MariaDB/MySQL sur le serveur SME est, par défaut, configuré pour n'autoriser que les connexions de localhost pour garantir la sécurité, ceci signifie que l'accessibilité n'est possible que du serveur lui-même etpas depuis le réseau local, ni depuis l'internet.
+
MariaDB/MySQL sur le serveur SME est, par défaut, configuré pour n'autoriser que les connexions de localhost pour garantir la sécurité, ceci signifie que l'accessibilité n'est possible que du serveur lui-même et pas depuis le réseau local, ni depuis l'internet.
Si vous souhaitez activer l'accès depuis le réseau local, exécutez les commandes suivantes sur un shell du serveur SME en tant que root (notez que l'accès privé n'est pas nécessaire car il s'agit de la valeur par défaut, et TCPPort 3306 non plus car tous les ports sont ouverts sur le LAN par défaut) :
+
Si vous souhaitez activer l'accès depuis le réseau local, exécutez les commandes suivantes sur un shell du serveur SME en tant que root (notez que l'accès privé n'est pas nécessaire car il s'agit de la valeur par défaut, et le port TCP 3306 non plus car tous les ports sont ouverts sur le LAN par défaut) :
    
{{Warning box|type=Attention : |gardez à l'esprit que par défaut MariaDB/MySQL n'utilise aucun type de cryptage à moins que vous n'ayez travaillé dessus vous-même, donc tout accès au port depuis le LAN sera en texte clair et toute personne sur le LAN sera capable d'accéder au mot de passe et à toutes les données transférées entre votre serveur et le client. Se référer au manuel de la version de votre base de données.}}
 
{{Warning box|type=Attention : |gardez à l'esprit que par défaut MariaDB/MySQL n'utilise aucun type de cryptage à moins que vous n'ayez travaillé dessus vous-même, donc tout accès au port depuis le LAN sera en texte clair et toute personne sur le LAN sera capable d'accéder au mot de passe et à toutes les données transférées entre votre serveur et le client. Se référer au manuel de la version de votre base de données.}}
Line 128: Line 172:  
{{Tip box|type=Astuce : |la suggestion ici est d'attribuer des privilèges en fonction du numéro IP (en utilisant un caractère générique si vous le souhaitez), la même chose peut également être faite pour les noms d'hôte. Dans certains cas, comme les adresses IP attribuées dynamiquement, cela peut être une solution plus appropriée et plus robuste.}}
 
{{Tip box|type=Astuce : |la suggestion ici est d'attribuer des privilèges en fonction du numéro IP (en utilisant un caractère générique si vous le souhaitez), la même chose peut également être faite pour les noms d'hôte. Dans certains cas, comme les adresses IP attribuées dynamiquement, cela peut être une solution plus appropriée et plus robuste.}}
 
Vous souhaitez probablement modifier :
 
Vous souhaitez probablement modifier :
*le nom de la base de donn ('''MyDB''')
+
*le nom de la base de données ('''MyDB''')
 
*le nom de l'utilisateur ('''MyUser''')
 
*le nom de l'utilisateur ('''MyUser''')
*le mot de passe ('''MyPW''') and
+
*le mot de passe ('''MyPW''') et
 
*les ordinateurs autorisés ('''192.168.1.%''')
 
*les ordinateurs autorisés ('''192.168.1.%''')
   Line 144: Line 188:     
===Conséquences pour la sécurité d'autoriser la connexion à MariaDB/MySQL à distance===
 
===Conséquences pour la sécurité d'autoriser la connexion à MariaDB/MySQL à distance===
Il est techniquement possible de combiner les techniques ci-dessus pour autoriser la connexion MariaDB/MySQL à distance depuis n'importe quel hôte sur Internet (autoriser la connexion réseau, ouvrir le pare-feu, puis définir l'adresse réseau sur '%'). Ce serait une mauvaise idée.
+
Il est techniquement possible de combiner les techniques ci-dessus pour autoriser la connexion à MariaDB/MySQL à distance depuis n'importe quel hôte sur Internet (autoriser la connexion réseau, ouvrir le pare-feu, puis définir l'adresse réseau sur '%'). Ce serait une mauvaise idée.
   −
Si vous avez des utilisateurs distants qui ont besoin d'accéder à votre ou vos bases de données MariaDB/MySQL, encouragez-les à utiliser une connexion VPN ou un tunnel SSH, ou (au minimum), limitez les hôtes de connexion autorisés à leur adresse IP Internet. En plus de cela, vous êtes encouragé(e) à appliquer une connexion cryptée au niveau de votre service MariaDB/MySQL pour éviter tout échange de texte en clair sur le LAN ou pire sur Internet.
+
Si vous avez des utilisateurs distants qui ont besoin d'accéder à votre ou vos bases de données MariaDB/MySQL, encouragez-les à utiliser une connexion VPN ou un tunnel SSH, ou (au minimum), limitez les hôtes de connexion autorisés à leur adresse IP Internet. En plus de cela, vous êtes encouragé(e) à appliquer une connexion cryptée au niveau de votre service MariaDB/MySQL pour éviter tout échange de texte en clair sur le LAN ou, pire, sur Internet.
   −
==Activer le mteur InnoDB==
+
==Activer le moteur InnoDB==
    
{{warning box|type=Attention : |la version 10 de MySQL est fournie par MariaDB qui a déjà InnoDB comme moteur de base de données par défaut.}}
 
{{warning box|type=Attention : |la version 10 de MySQL est fournie par MariaDB qui a déjà InnoDB comme moteur de base de données par défaut.}}
Line 179: Line 223:  
Cela créera une base de données vide dénommée dbname.
 
Cela créera une base de données vide dénommée dbname.
   −
{{Warning box|type=Attention :| l'utilisateur 'root' ne devrait pas être autorisé à accéder à la base de données en dehors de localhost. Chaque application devrait avoir sa propre base de données et son propore utilisateur pour accéder à cette base de données.}}
+
{{Warning box|type=Attention :| l'utilisateur 'root' ne devrait pas être autorisé à accéder à la base de données en dehors de localhost. Chaque application devrait avoir sa propre base de données et son propre utilisateur pour accéder à cette base de données.}}
    
===Créer un (des) utilisateur(s) MySQL===
 
===Créer un (des) utilisateur(s) MySQL===
Line 203: Line 247:  
  drop database databasename;
 
  drop database databasename;
   −
Replacer databasename par le nom de la base de données.
+
Remplacer databasename par le nom de la base de données.
    
===Supprimer un utilisateur===
 
===Supprimer un utilisateur===
Line 217: Line 261:     
== Optimisation des réglages par défaut de MariaDB/MySQL pour SME 10 ==
 
== Optimisation des réglages par défaut de MariaDB/MySQL pour SME 10 ==
Voici les paramètres disponibles dans la base de données de configuration pour peaufiner votre service MariaDB. Si aucune valeur par défaut n'est indiquée, veuillez consulter le manuel de la version de votre base de données pour sa propre valeur par défaut :
+
Voici les paramètres disponibles dans la base de données de configuration pour peaufiner votre service MariaDB. Si aucune valeur par défaut n'est indiquée, veuillez consulter le manuel de la version de votre base de données pour connaître sa propre valeur par défaut :
    
{| class="wikitable"
 
{| class="wikitable"
!key
+
!Clé
!default
+
!Par défaut
!Role
+
!Rôle
 
|-
 
|-
 
|innodb_file_format
 
|innodb_file_format
Line 346: Line 390:  
  myisam_sort_buffer_size=8M
 
  myisam_sort_buffer_size=8M
   −
Créer un fragment de modèle perosnalisé & éditer-le pour inclure vos paramètres requis :
+
Créer un fragment de modèle perosnalisé et éditer le pour inclure vos paramètres requis :
 
  mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/
 
  mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/
 
  vim  /etc/e-smith/templates-custom/etc/my.cnf/016mysetup
 
  vim  /etc/e-smith/templates-custom/etc/my.cnf/016mysetup
Line 352: Line 396:  
  Ctrl o
 
  Ctrl o
 
  Ctrl x
 
  Ctrl x
Propager les changements et redémarrer mysql
+
Propager les changements et redémarrer mysql :
 
  expand-template /etc/my.cnf
 
  expand-template /etc/my.cnf
 
  sv t /service/mysqld
 
  sv t /service/mysqld
3,054

edits

Navigation menu