URL: https://linuxfr.org/forums/linux-general/posts/mysql-n-ecoute-pas-le-bon-port-multi-instance Title: MySQL n'écoute pas le bon port (multi instance) Authors: WhiteCat Date: 2013年02月08日T16:58:29+01:00 License: CC By-SA Tags: mysql et selinux Score: 0 Bonjour, J'ai un serveur MySQL 5.1.67 (sous CentOS) sur lequel je souhaite faire tourner 2 instances différentes. C'est à dire qu'avec la même version de MySQL je souhaite pouvoir accéder à 2 database différentes selon un numéro de port choisi : 3306 pour la 1ère et 23306 (par exemple) pour la 2ème. J'ai configuré mysqld_multi qui est fait pour ça. J'ai donc bien créé 2 "datadir" différents pour chaque instance, ainsi qu'un PID et un socket chacun. Le fichier my.cnf rssemble donc à ceci : ```sh ******* ******* [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysqld_multi] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=mysql log=/var/log/mysqld_multi.log [mysqld1] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock pid-file=/var/run/mysqld/mysqld_prod.pid tmpdir=/tmp general-log-file=/var/run/mysqld/mysqld_prod.log log-error=/var/log/mysqld_prod.log port=3306 user=mysql symbolic-links=0 [mysqld2] datadir=/var/lib/mysql_demo socket=/var/lib/mysql_demo/mysql_demo.sock pid-file=/var/run/mysqld/mysqld_demo.pid tmpdir=/tmp/mysqld_demo general-log-file=/var/run/mysqld/mysqld_demo.log log-error=/var/log/mysqld_demo.log port=23306 user=mysql symbolic-links=0 ******* ******* ``` En fait, ça marche à peu près... enfin vous allez voir. [Notes] - Iptables a les ports 3306 et 23306 ouverts. Selinux est désactivé. - "mysqld_multi report 1" et "mysqld_multi report 2" m'indique que les serveurs tournent. - le service mysqld "de base" est off (chkconfig mysqld off / service mysqld stop) - Rien à signaler dans les logs également. Si je me connecte avec le socket, par exemple : ```sh # mysql -u root -p --socket=/var/lib/mysql/mysql.sock ``` ou ```sh # mysql -u root -p --socket=/var/lib/mysql/mysql.sock ``` dans ce cas tout va bien ! Je me connecte aux bases correspondantes. PAR CONTRE, si je me connecte avec le port TCP/IP : ```sh # mysql -u root -p --port=3306 ``` ou ```sh # mysql -u root -p --port=23306 ``` je tombe toujours sur la 1ère instance, celle qui tourne sur le port 3306. C'est comme si le port TCP dans my.cnf n'était pas pris en compte ! Une idée ?