Difference between revisions of "MySQL/fr"
Line 114: | Line 114: | ||
signal-event reboot | signal-event reboot | ||
− | + | Gardez à l'esprit que cela permet à TOUT LE MONDE d'accéder à votre base de données MariaDB/MySQL, alors assurez-vous d'avoir des mots de passe forts sur TOUTES vos bases de données MariaDB/MySQL. | |
− | + | Il serait également plus sûr d'exiger des utilisateurs externes (distants) qu'ils établissent une connexion VPN et fassent effectivement partie du réseau local. Dans ce cas, ne modifiez pas l'accès mysql au statut public à l'aide de la commande ci-dessus. | |
− | {{Warning box| | + | {{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é là-dessus vous-même, donc tout accès au port depuis le WAN sera en texte clair et n'importe qui sur Internet 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.}} |
− | == | + | ==Créer un (des) utilisateur(s) MariaDB/MySQL avec accès depuis d'autres ordinateurs== |
− | + | Les utilisateurs de la base de données MariaDB/MySQL par défaut du serveur SME, et la plupart des exemples de bases de données du wiki, autorisent la connexion uniquement à partir de ''localhost''. | |
− | + | Si vous souhaitez accéder à une base de données MariaDB/MySQL sur votre serveur SME à partir d'autres ordinateurs, vous devez non seulement effectuer les modifications de configuration décrites ci-dessus, mais également créer un utilisateur autorisé à se connecter à partir de ces systèmes (voir [http:// dev.mysql.com/doc/refman/4.1/en/connection-access.html 5.5.4. Contrôle d'accès, étape 1 : vérification de la connexion] pour plus de détails). | |
− | === | + | ===Autoriser les connexions à MariaDB/MySQL depuis toutes les stations de travail du LAN=== |
− | + | En supposant que votre réseau local est 192.168.1.0, vous pouvez créer un utilisateur avec un accès MariaDB/MySQL à partir de n'importe quel poste de travail LAN (ou client VPN) en utilisant la commande ci-dessous (avec l'aimable autorisation de [http://forums.contribs.org/index.php/topic,32270.msg136322.html#msg136322 DarkMirage]). | |
− | {{Tip box| | + | {{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 : | |
+ | *le nom de la base de donn ('''MyDB''') | ||
+ | *le nom de l'utilisateur ('''MyUser''') | ||
+ | *le mot de passe ('''MyPW''') and | ||
+ | *les ordinateurs autorisés ('''192.168.1.%''') | ||
− | + | ## Dans la commande ci-dessous, \ permet de poursuivre la commande sur la ligne suivante. | |
− | + | ## Soit inclure les barres obliques inverses, soit placer la commande entière sur une seule ligne : | |
− | |||
− | |||
− | |||
− | ## | ||
− | ## | ||
mysql -e "\ | mysql -e "\ | ||
create database MyDB; \ | create database MyDB; \ | ||
Line 144: | Line 143: | ||
FLUSH PRIVILEGES;" | FLUSH PRIVILEGES;" | ||
− | === | + | ===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. | |
− | + | 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== |
− | {{warning box| | + | {{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.}} |
− | + | Pour activer le moteur InnoDB, exécutez les commandes suivantes : | |
db configuration setprop mysqld InnoDB enabled | db configuration setprop mysqld InnoDB enabled | ||
Line 159: | Line 158: | ||
sv t /service/mysqld | sv t /service/mysqld | ||
− | + | Pour désactiver le moteur InnoDB, exécutez les commandes suivantes : | |
db configuration setprop mysqld InnoDB disabled | db configuration setprop mysqld InnoDB disabled | ||
Line 166: | Line 165: | ||
==Administration== | ==Administration== | ||
− | + | Des informations sur la gestion des utilisateurs peuvent être trouvées dans la [http://dev.mysql.com/doc/refman/4.1/en/user-account-management.html section MySQL User Account Management] du [http://dev. mysql.com/doc/refman/4.1/en/ MySQL manual], qui contient de nombreuses informations utiles, une petite section est répertoriée ici pour plus de commodité. | |
− | === | + | ===Créer une nouvelle base de données=== |
− | * | + | *Voir le guide pour les développeurs si vous souhaitez automatiser la création d'une base de données au sein d'un paquet |
− | + | ou | |
− | * | + | *Accédez au shell du serveur SME et exécutez les commandes suivantes : |
mysqladmin create 'dbname' --default-character-set=utf8 | mysqladmin create 'dbname' --default-character-set=utf8 | ||
− | + | Cela créera une base de données vide dénommée dbname. | |
− | {{Warning box| | + | {{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.}} |
− | }} | ||
− | === | + | ===Créer un (des) utilisateur(s) MySQL=== |
− | + | Décidez quelles autorisations vous devrez accorder à l'utilisateur sur quelle base de données. Des détails à ce sujet peuvent être trouvés dans le manuel MariaDB/MySQL disponible sur le site MariaDB/MySQL. Accédez au shell du serveur SME et exécutez les commandes suivantes pour vous connecter au serveur MySQL : | |
− | + | mysql | |
− | + | Supposons que nous voulions créer un utilisateur qui a un accès en lecture seule sur toutes les tables de la base de données appelée 'test' : | |
GRANT SELECT ON test.* TO 'user'@'host' IDENTIFIED BY 'password'; | GRANT SELECT ON test.* TO 'user'@'host' IDENTIFIED BY 'password'; | ||
− | + | Dans la ligne ci-dessus, vous devrez renseigner l'utilisateur et l'hôte et/ou le domaine à partir duquel vous autoriserez l'accès de l'utilisateur au serveur SME MariaDB/MySQL (n'oubliez pas les guillemets simples). Plus d'informations peuvent être trouvées dans le manuel du serveur MariaDB/MySQL sur le site Web MariaDB/MySQL indiqué ici. | |
− | === | + | ===Liste des bases de données disponibles=== |
− | + | Pour afficher une liste des bases de données disponibles sur le système, vous pouvez émettre la commande suivante lorsque vous êtes connecté à MariaDB/MySQL : | |
show databases; | show databases; | ||
− | === | + | ===Supprimer une base de données=== |
− | + | ||
+ | Accédez au shell du serveur SME et à MariaDB/MySQL et exécutez les commandes suivantes : | ||
drop database databasename; | drop database databasename; | ||
− | + | Replacer databasename par le nom de la base de données. | |
− | === | + | ===Supprimer un utilisateur=== |
− | + | Accédez au shell du serveur SME et à MariaDB/MySQL et exécutez les commandes suivantes : | |
USE mysql; | USE mysql; | ||
Line 213: | Line 212: | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
− | + | Replacer username par le nom d'utilisateur que vous souhaitez effacer. | |
+ | |||
+ | {{Tip box|type=Astuce : |mysql_setpermission est un utilitaire piloté par un menu de ligne de commande qui peut aider à l'administration de MySQL.}} | ||
− | + | == 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 : | ||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
!key | !key | ||
Line 322: | Line 322: | ||
− | + | Pour modifier une valeur, faire seulement : | |
config set mariadb KeyBufferSize 18M MyisamSortBufferSize 8M | config set mariadb KeyBufferSize 18M MyisamSortBufferSize 8M | ||
expand-template /etc/my.cnf | expand-template /etc/my.cnf | ||
systemctl restart mariadb | systemctl restart mariadb | ||
− | + | Si l'option dont vous avez besoin n'est pas disponible, alors créer un modèle dédié personalisé. '''Faire attention à utiliser un nom commençant par un nombre compris entre 016 et 039'''. | |
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/017myvalues | vim /etc/e-smith/templates-custom/etc/my.cnf/017myvalues |
Revision as of 20:19, 26 April 2022
Le serveur SME, jusqu'à la version 9.2 incluse, exécute MySQL en tant que gestionnairre de base de données.
Le serveur Koozali SME 10 utilise MariaDB pour réaliser cette fonction. De nombreuses applications nécessitent une base de données MySQL, parmi lesquelles l'interface webmail Horde qui est fournie par défaut par le serveur SME.
- Site web de MySQL : http://www.mysql.com
- Manuel de MySQL 4.1 : http://dev.mysql.com/doc/refman/4.1/en/
- Documentation de MariaDB : https://mariadb.org/documentation/
Généralités
Le serveur SME est fondé sur CentOS, l'équipe de développement prendra leurs paquets en stock à partir des versions de CentOS. La version actuelle de MariaDB installée sur le serveur SME est la version 5.5.68. L'interface de messagerie Web Horde s'appuie sur MariaDB. La mise à niveau vers la version 10.x peut potentiellement casser des choses comme le webmail. Si vous insistez pour mettre à niveau MariaDB, vous pourrez peut-être trouver des instructions sur le forum, mais sachez qu'aucun support ne peut être attendu des développeurs et que tous les bogues signalés dans Bugzilla ne seront pas pris en compte.
Vous pouvez également vous fier aux contributions et à la collection logicielle Red-Hat pour ajouter MySQL 5.7 et MariaDB 10.1 10.2 10.3 ou 10.5 comme service SQL secondaire pour répondre à vos besoins.
MariaDB s'exécute sur le serveur SME sur un socket (une interface de connexion) au lieu d'un port - auquel vous êtes peut-être habitué. Ceci est fait pour améliorer la sécurité car, de l'avis de l'équipe de développement, seul le serveur lui-même (localhost) doit avoir accès au serveur MySQL. Cependant, vous pouvez configurer MySQL pour qu'il soit accessible depuis le réseau local (voir ci-dessous).
[mysqld] [mysqld_safe] [mysql-5.7] [mariadb-10.1] [mariadb-10.2] [mariadb-10.3] [mariadb-10.5]
Accès à MariaDB/MySQL depuis mon application
Comme indiqué ci-dessus, sur SME Server, vous devez utiliser un socket (une interface de connexion), c'est plus sûr que d'utiliser un port. Par défaut, le service n'écoute que sur le serveur à l'aide d'un socket, donc essayer de se connecter avec n'importe quel port entraînera un échec.
La plupart des applications devront définir une chaîne pour accéder au socket, comme ci-dessous pointant vers localhost (pas 127.0.0.1, ni l'ip LAN) et le chemin complet vers le socket. Dans certaines situations, vous devrez définir le chemin du socket et l'hôte (localhost à nouveau et non 127.0.0.1) dans des variables.
define( 'DB_HOST', 'localhost:/var/lib/mysql/mysql.sock' );
Mot de passe root MariaDB/MySQL
Il semble qu'il n'y ait pas de mot de passe défini comme mot de passe root MySQL, mais ce n'est pas vrai. Si vous êtes connecté au shell du serveur SME, un mécanisme spécial est en place pour vous connecter avec les privilèges root de MySQL sans vous demander le mot de passe.
Le mot de passe root MySQL pour le serveur SME est une chaîne aléatoire de 72 caractères générée lors de l'installation du serveur SME. Vous ne devez jamais modifier le mot de passe root MySQL car cela casserait la configuration de votre serveur SME. Comment se connecter en tant qu'utilisateur root MySQL ? décrit comment accéder à MySQL avec les privilèges root sur le serveur SME.
Se connecter en tant qu'utilisateur root de MySQL
Pour se connecter en tant qu'utilisateur root de MySQL, saisir simplement 'mysql' sur le shell du serveur SME, ceci vous connectera avec les privilèges de root.
Réinitialiser le mot de passe root de MySQL
Pour réinitialiser le mot de passe du compte root MySQL : l'utilisateur root de MySQL sur le serveur SME a un mot de passe généré aléatoirement qui est créé lors de l'installation. Vous n'avez pas besoin de connaître ce mot de passe pour vous connecter à MySQL avec les privilèges root sur le serveur SME. Si vous avez peut-être changé le mot de passe root MySQL, vous pouvez le réinitialiser comme ci-dessous après avoir obtenu l'accès à la ligne de commande en tant qu'utilisateur root.
Pour SME 10 (noter que pour les versions SCLO (???, ndt), voir la page de la contribution correspondante) :
systemctl stop mariadb expand-template /root/.my.cnf expand-template /var/lib/mysql/set.password /usr/libexec/mysqld --socket=/var/lib/mysql/mysql.sock --bootstrap --user=mysql --skip-grant-tables < /var/lib/mysql/set.password exit systemctl start mariadb
Pour le serveur SME 7.3 et jusqu'au serveur SME 9.2 :
cd /var/service/mysqld sv d . expand-template /root/.my.cnf expand-template /var/service/mysqld/set.password /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < ./set.password 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 ) :
cd /var/service/mysqld runsvctrl d . expand-template /root/.my.cnf expand-template /var/service/mysqld/set.password /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < ./set.password runsvctrl u .
Restaurer un effacement accidentel du mot de passe de l'utilisateur root de MySQL
Note : ce qui suit n'est applicable que sur le serveur SME 7.3 et à MySQL 4.1.
cd /var/service/mysqld sv d . echo 'use mysql;'>set.rootuser echo -n 'INSERT INTO user VALUES("localhost","root","",'>>set.rootuser echo '"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","","","","",0,0,0);'>>set.rootuser expand-template /root/.my.cnf expand-template /var/service/mysqld/set.password /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < set.rootuser /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < set.password sv u .
Accès à MariaDB/MySQL en utilisant le port de localhost et 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 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. 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) :
Pour SME 10 :
config setprop mariadb LocalNetworkingOnly no expand-template /etc/my.cnf sv t /service/mysqld
Pour SME 9 et avant :
config setprop mysqld LocalNetworkingOnly no expand-template /etc/my.cnf sv t /service/mysqld
Accès à MySQL depuis un réseau distant
Si vous souhaitez activer l'accès aux bases de données MariaDB/MySQL à partir de réseaux distants, en plus du paramètre db LocalNetworkingOnly mentionné ci-dessus, vous devrez exécuter les commandes suivantes :
Pour SME 10
config set mariadb service access public status enabled TCPPort 3306 signal-event remoteaccess-update signal-event reboot
Pour SME9 et avant
config set mysqld service access public status enabled TCPPort 3306 signal-event remoteaccess-update signal-event reboot
Gardez à l'esprit que cela permet à TOUT LE MONDE d'accéder à votre base de données MariaDB/MySQL, alors assurez-vous d'avoir des mots de passe forts sur TOUTES vos bases de données MariaDB/MySQL. Il serait également plus sûr d'exiger des utilisateurs externes (distants) qu'ils établissent une connexion VPN et fassent effectivement partie du réseau local. Dans ce cas, ne modifiez pas l'accès mysql au statut public à l'aide de la commande ci-dessus.
Créer un (des) utilisateur(s) MariaDB/MySQL avec accès depuis d'autres ordinateurs
Les utilisateurs de la base de données MariaDB/MySQL par défaut du serveur SME, et la plupart des exemples de bases de données du wiki, autorisent la connexion uniquement à partir de localhost.
Si vous souhaitez accéder à une base de données MariaDB/MySQL sur votre serveur SME à partir d'autres ordinateurs, vous devez non seulement effectuer les modifications de configuration décrites ci-dessus, mais également créer un utilisateur autorisé à se connecter à partir de ces systèmes (voir [http:// dev.mysql.com/doc/refman/4.1/en/connection-access.html 5.5.4. Contrôle d'accès, étape 1 : vérification de la connexion] pour plus de détails).
Autoriser les connexions à MariaDB/MySQL depuis toutes les stations de travail du LAN
En supposant que votre réseau local est 192.168.1.0, vous pouvez créer un utilisateur avec un accès MariaDB/MySQL à partir de n'importe quel poste de travail LAN (ou client VPN) en utilisant la commande ci-dessous (avec l'aimable autorisation de DarkMirage).
Vous souhaitez probablement modifier :
- le nom de la base de donn (MyDB)
- le nom de l'utilisateur (MyUser)
- le mot de passe (MyPW) and
- les ordinateurs autorisés (192.168.1.%)
## Dans la commande ci-dessous, \ permet de poursuivre la commande sur la ligne suivante. ## Soit inclure les barres obliques inverses, soit placer la commande entière sur une seule ligne : mysql -e "\ create database MyDB; \ GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER \ ON *.* \ TO 'MyUser'@'192.168.1.%' \ IDENTIFIED BY 'MyPW'; \ FLUSH PRIVILEGES;"
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.
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
Pour activer le moteur InnoDB, exécutez les commandes suivantes :
db configuration setprop mysqld InnoDB enabled expand-template /etc/my.cnf sv t /service/mysqld
Pour désactiver le moteur InnoDB, exécutez les commandes suivantes :
db configuration setprop mysqld InnoDB disabled expand-template /etc/my.cnf sv t /service/mysqld
Administration
Des informations sur la gestion des utilisateurs peuvent être trouvées dans la section MySQL User Account Management du mysql.com/doc/refman/4.1/en/ MySQL manual, qui contient de nombreuses informations utiles, une petite section est répertoriée ici pour plus de commodité.
Créer une nouvelle base de données
- Voir le guide pour les développeurs si vous souhaitez automatiser la création d'une base de données au sein d'un paquet
ou
- Accédez au shell du serveur SME et exécutez les commandes suivantes :
mysqladmin create 'dbname' --default-character-set=utf8
Cela créera une base de données vide dénommée dbname.
Créer un (des) utilisateur(s) MySQL
Décidez quelles autorisations vous devrez accorder à l'utilisateur sur quelle base de données. Des détails à ce sujet peuvent être trouvés dans le manuel MariaDB/MySQL disponible sur le site MariaDB/MySQL. Accédez au shell du serveur SME et exécutez les commandes suivantes pour vous connecter au serveur MySQL :
mysql
Supposons que nous voulions créer un utilisateur qui a un accès en lecture seule sur toutes les tables de la base de données appelée 'test' :
GRANT SELECT ON test.* TO 'user'@'host' IDENTIFIED BY 'password';
Dans la ligne ci-dessus, vous devrez renseigner l'utilisateur et l'hôte et/ou le domaine à partir duquel vous autoriserez l'accès de l'utilisateur au serveur SME MariaDB/MySQL (n'oubliez pas les guillemets simples). Plus d'informations peuvent être trouvées dans le manuel du serveur MariaDB/MySQL sur le site Web MariaDB/MySQL indiqué ici.
Liste des bases de données disponibles
Pour afficher une liste des bases de données disponibles sur le système, vous pouvez émettre la commande suivante lorsque vous êtes connecté à MariaDB/MySQL :
show databases;
Supprimer une base de données
Accédez au shell du serveur SME et à MariaDB/MySQL et exécutez les commandes suivantes :
drop database databasename;
Replacer databasename par le nom de la base de données.
Supprimer un utilisateur
Accédez au shell du serveur SME et à MariaDB/MySQL et exécutez les commandes suivantes :
USE mysql; DELETE FROM user WHERE user = 'username'; FLUSH PRIVILEGES;
Replacer username par le nom d'utilisateur que vous souhaitez effacer.
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 :
key | default | Role |
---|---|---|
innodb_file_format | barracuda | |
innodb_file_per_table | 1 | |
LocalNetworkingOnly | no | |
OpenFilesLimit | 0 | |
MaxConnections | ||
WaitTimeout | ||
QueryCacheLimit | ||
QueryCacheSize | 1M | |
QueryCacheType | 1 | |
SortBufferSize | ||
ReadRndBufferSize | ||
TableOpenCache | ||
TableOpenCacheInstances | ||
TmpTableSize | ||
MaxHeapTableSize | ||
ThreadCacheSize | 256 | |
KeyBufferSize | key_buffer_size | |
MyisamSortBufferSize | myisam_sort_buffer_size | |
JoinBufferSize | 262144 | |
ReadBufferSize | ||
MaxConnectErrors | ||
ConnectTimeout | 100 | |
MaxAllowedPacket | 16M | |
SlowQueries |
Pour modifier une valeur, faire seulement :
config set mariadb KeyBufferSize 18M MyisamSortBufferSize 8M expand-template /etc/my.cnf systemctl restart mariadb
Si l'option dont vous avez besoin n'est pas disponible, alors créer un modèle dédié personalisé. Faire attention à utiliser un nom commençant par un nombre compris entre 016 et 039.
mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/ vim /etc/e-smith/templates-custom/etc/my.cnf/017myvalues expand-template /etc/my.cnf systemctl restart mariadb
Optimizing MariaDB/MySQL default settings for up to SME9
SME Server uses MariaDB/MySQL for the webmail package, and the default configuration is optimized for that.
If you are using the SME server to provide MariaDB/MySQL databases for functions running on workstations, you may need to adjust some of the default MariaDB/MySQL parameters. Keep in mind it is difficult to optimize MYSQL for a number of different applications, as default values that are suitable for one application may not be suitable for another. In determining appropriate settings for MariaDB/MySQL, you will also need to consider the system resources & general specification of the server that MariaDB/MySQL is running on.
Pointers for tuning and optimizing the databases can be found at http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/ and http://lists.mysql.com/mysql/214398 and specifically re key_buffer_size at http://lists.mysql.com/mysql/214398
The following example comes from this forum thread http://forums.contribs.org/index.php/topic,46694.0.html and refers to this bug report http://bugs.contribs.org/show_bug.cgi?id=6287
To change the following parameters
key_buffer_size=18M myisam_sort_buffer_size=8M
Create a custom template fragment & edit it to include your required parameters
mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/ vim /etc/e-smith/templates-custom/etc/my.cnf/016mysetup
Save & Exit
Ctrl o Ctrl x
Expand the changes & restart mysql
expand-template /etc/my.cnf sv t /service/mysqld
Check /etc/my.cnf to see that the changes are reflected.