Connaissez-vous une «méthode Debian» pour configurer plusieurs instances MySQL sur un seul serveur? Le serveur recevrait des données répliquées à partir de plusieurs bases de données distantes.
Je pourrais utiliser des scripts comme mysqlsandbox mais je préfère m'en tenir aux paquets Debian et j'aimerais pouvoir mettre à jour la configuration sans trop de complications à l'avenir. Mysqlmanager est une autre solution - il fonctionne avec MySQL 5.1 mais il est obsolète et n'est plus publié avec 5.5.
Alors, quelle est la «meilleure pratique» pour exécuter plusieurs instances MySQL sur un seul serveur Debian?
Réponses:
Je pense que c'est aussi simple que d'exécuter
mysqld_multi
et de configurer correctement mon my.cnf.mysqld_multi
fait partie de la distribution mysql - pas un volant emballé.Il existe un correctif à
/usr/share/mysql/mysqld_multi.server
utiliser/etc/init.d
et un autre correctif àmysqld_multi
utiliser/etc/mysql/conf.d
.Vous pouvez initialiser les répertoires de données MySQL pour de nouvelles instances avec la
mysql_install_db
commande comme ceci:N'oubliez pas de changer le mot de passe root de l'instance nouvellement créée:
la source
Sur Debian 8, vous pouvez utiliser le mécanisme Systemd: plus besoin de
mysqld_multi
.REMARQUE: j'utilise la version MariaDB! Je ne sais pas si cela fonctionne avec le package MySQL «classique».
De
/lib/systemd/system/[email protected]
:Donc, créez un fichier
/etc/mysql/conf.d/myserver2.cnf
, et spécifiez-y de nouveaux fichiers pid / socket / datadir et un port réseau:EDIT: attention à ce que la première instance MySQL ne lise pas ce fichier de configuration, avec
!includedir /etc/mysql/conf.d/*
en bas de/etc/mysql/my.cnf
. Si c'est le cas, remplacez le!includedir
par un!include
de chaque fichier de configuration AUTRE QUE myserver2.cnf:Le doc officiel de MySQL indique que vous devez nommer
[mysqld]
comme[mysqld@server2]
( https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html#systemd-multiple-mysql-instances ) , mais cela ne fonctionne pas avec MariaDB . Alors laissez-le[mysqld]
.Avant de démarrer le nouveau démon, n'oubliez pas de créer le datadir et les fichiers nécessaires:
Rechargez également la configuration du démon systemd:
Et si vous voulez démarrer ce démon au démarrage:
Pour le démarrer:
la source
/etc/my.cnf
, c'est pourquoi.!includedir /etc/mysql/conf.d/*
. Pour une meilleure sécurité, j'ai inclus chaqueconf.d
fichier manuellement