Sur une machine, comment démarrer deux services mysql ? Comment
exécuter deux services mysql sur une seule machine, correspondant à deux bases de données ?
Meilleure réponse
26 juillet 10:36 Il existe des situations dans lesquelles vous souhaiterez peut-être exécuter plusieurs serveurs sur la même machine. Par exemple, vous souhaiterez peut-être tester une nouvelle version de MySQL sans perturber la configuration de votre système de production existant, ou vous pourriez être un fournisseur de services Internet souhaitant fournir des installations MySQL indépendantes à différents clients.
Si vous souhaitez exécuter plusieurs serveurs, le moyen le plus simple consiste à recompiler les serveurs avec différents ports TCP/IP et fichiers de socket, afin qu'ils n'écoutent pas sur le même port ou socket TCP/IP.
En supposant qu'un serveur existant soit configuré avec un numéro de port et un fichier de socket par défaut, configurez le nouveau serveur avec une ligne de commande de configuration comme celle-ci :
shell> ./configure --with-tcp-port=port_number
--with-unix-socket=nom_fichier
--prefix=/usr/local/mysql-3.22.9
où le numéro de port et le nom de fichier doivent être différents du numéro de port par défaut et du chemin d'accès au fichier de socket, et la valeur --prefix doit spécifier une installation différente de celle de l'installation MySQL existante. contenu.
Vous pouvez vérifier le socket et le port utilisés par MySQL en cours d'exécution avec cette commande :
shell> mysqladmin -h hostname --port=port_number variables
Si vous avez un serveur MySQL exécuté sur le port que vous utilisez, vous obtiendrez une table de certaines des variables configurables les plus importantes de MySQL, notamment les noms de sockets, etc.
Vous devez également modifier le script d'initialisation de votre machine (probablement "mysql.server") pour démarrer et supprimer plusieurs serveurs mysqld.
Vous n'avez pas besoin de recompiler un nouveau serveur MySQL, démarrez-le simplement avec un port et un socket différents. Vous pouvez modifier le port et le socket en spécifiant les options utilisées par safe_mysqld lors de l'exécution :
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
si vous êtes sur le même serveur qu'un autre sur lequel la journalisation est activée lors de l'exécution. un nouveau serveur dans le répertoire de la base de données, vous devez également spécifier le nom du fichier journal en utilisant les options --log et --log-update de safe_mysqld, sinon les deux serveurs pourraient essayer d'écrire dans le même fichier journal.
Attention : Normalement, vous ne devriez jamais avoir 2 serveurs mettant à jour les données dans la même base de données ! Si votre système d'exploitation ne prend pas en charge le verrouillage du système sans problème, des choses surprenantes peuvent se produire !
Si vous souhaitez utiliser un autre répertoire de base de données pour le deuxième serveur, vous pouvez utiliser l'option --datadir=path de safe_mysqld.
bien
50% (0) Mauvais
50% (0)