4 votes

Comment exécuter plusieurs versions de MySQL sur un même serveur ?

Comment faire fonctionner plusieurs versions de MySQL sur une seule boîte de serveur ? Nous sommes sur une machine exécutant SUSE Enterprise Server 10. L'installation initiale de MySQL v5.0.45 a été effectuée via un RPM. On me demande maintenant de configurer une deuxième version de MySQL (5.1.36) pour qu'elle fonctionne simultanément avec la version précédente. J'ai téléchargé le fichier tarball pour la distribution binaire de MySQL v5.1.36.

Je suis à la recherche de détails sur la façon de le mettre en place ainsi que de recommandations sur la gestion des deux versions différentes. Où dois-je avoir un seul my.cnf ou plusieurs ? Dois-je les conserver dans /etc ou peut-être dans le répertoire de base de chaque instance de MySQL ? Quelle est la meilleure façon de démarrer et d'arrêter les deux serveurs ? etc.

1 votes

La virtualisation serait-elle une option ?

0 votes

La virtualisation n'est pas une option.

5voto

Jorge Bernal Points 454

Vous pouvez utiliser mysqlmanager ou mysqld_multi. mysqlmanager est plus puissant mais mysqld_multi est beaucoup plus facile à mettre en place et c'est généralement mon choix.

Vous avez juste besoin d'un /etc/my.cnf comme ceci (du manuel mysql) :

[mysqld_multi]
mysqld     = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user       = multi_admin
password   = multipass

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
datadir    = /usr/local/mysql/var2

[mysqld3]
socket     = /tmp/mysql.sock3
port       = 3308
datadir    = /usr/local/mysql/var3

[mysqld4]
# ...

page de manuel : mysqld_multi - Gérer plusieurs serveurs MySQL

0 votes

Je travaille sur cette solution. Comment dois-je configurer la section [client] du fichier /etc/my.cnf ? Dois-je l'omettre complètement et demander à chaque client de fournir un port et un socket ? D'autres suggestions ? Merci, Dave

0 votes

À moins que vous ne souhaitiez y mettre quelque chose, il est préférable de ne pas l'utiliser et de spécifier dans chaque client à laquelle des instances vous souhaitez vous connecter. Le paramètre [client] peut être utile pour changer l'utilisateur par défaut, ou si vous n'avez qu'une seule instance sur un port non standard.

1voto

Chad Huneycutt Points 2076

Il fonctionne bien. Il suffit de spécifier une conf, un port, un sock, etc. séparés. Personnellement, je maintiendrais probablement un /etc/my.server1.cnf y /etc/my.server2.cnf pour les paramètres de chaque serveur. Et pour le démarrage, il suffit de copier /etc/init.d/mysqld (ou quel que soit son nom pour Suse), et il devrait être juste une question de mise à jour de quelques variables pour que le nouveau script démarre le second serveur.

0 votes

Bonjour Chad, j'envisage maintenant de travailler avec votre idée de 2 fichiers my.cnf séparés. Puisque j'utilise deux versions différentes de MySQL, la liste ci-dessous inclut-elle tout ce que je dois spécifier dans la section [mysqld] du fichier my.server2.cnf ? [mysqld] basedir = /opt/mysql port = 4444 datadir = /opt/mysql/data pid-file = /opt/mysql/data/mysql.pid socket = /opt/mysql/data/mysql. sock mysqld = /opt/mysql/bin/mysqld_safe ledir = /opt/mysql/bin mysqladmin = /opt/mysql/bin/mysqladmin user = mysql log-error=/opt/mysql/data/mysqld.log Merci, Dave

1 votes

Ce n'était pas très bien formaté. Pourquoi ne pas mettre à jour la question avec le contenu des deux fichiers. Assurez-vous de spécifier des chemins différents pour datadir, socket, et pid-file.

0 votes

J'ai un problème pour que le /etc/init.d/mysql script démarre la 2ème installation de MySQL. Que dois-je changer dans ce fichier pour qu'il utilise un fichier /etc/my.server2.cnf au lieu de /etc/my.cnf qu'il semble toujours prendre à la place ? Merci ~D.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X