Utilisation et configuration multiples bases mysql sur une même machine
Il faut commencer par créer les répertoires de chaque bases de données supplémentaires puis les initialiser avec la commande mysql_install_db
mkdir /var/lib/mysql-databases/mysqld2 mkdir /var/lib/mysql-databases/mysqld3 mkdir /var/lib/mysql-databases/mysqld4
Ajouter le paragraphe mysqld_multi
[mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin log = /var/log/mysqld_multi.log user = multi_admin password = multipass # If you want to use mysqld_multi uncomment 1 or more mysqld sections # below or add your own ones. # WARNING # -------- # If you uncomment mysqld1 than make absolutely sure, that database mysql, # configured above, is not started. This may result in corrupted data! [mysqld1] port = 3306 datadir = /var/lib/mysql pid-file = /var/lib/mysql/mysqld.pid socket = /var/lib/mysql/mysql.sock user = mysql [mysqld2] port = 3307 datadir = /var/lib/mysql-databases/mysqld2 pid-file = /var/lib/mysql-databases/mysqld2/mysql.pid socket = /var/lib/mysql-databases/mysqld2/mysql.sock user = mysql [mysqld3] port = 3308 datadir = /var/lib/mysql-databases/mysqld3 pid-file = /var/lib/mysql-databases/mysqld3/mysql.pid socket = /var/lib/mysql-databases/mysqld3/mysql.sock user = mysql [mysqld4] port = 3309 datadir = /var/lib/mysql-databases/mysqld4 pid-file = /var/lib/mysql-databases/mysqld4/mysql.pid socket = /var/lib/mysql-databases/mysqld4/mysql.sock user = mysql
mysql -p -P 3309 -S /var/lib/mysql-databases/mysqld4/mysql.sock
Sur chaque base il faut créer l'utilisateur qui a les droits d’arrêter la base :
vmps60:/etc/rc.d# mysql -p -P 3309 -S /var/lib/mysql-databases/mysqld4/mysql.sock Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.33 SUSE MySQL package Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'multipass';
utilisation :
vmps60:/etc/rc.d# mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running MySQL server from group: mysqld3 is running MySQL server from group: mysqld4 is running
Arret de la base mysqld4 :
vmps60:/etc/rc.d# mysqld_multi stop 4 vmps60:/etc/rcd # mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running MySQL server from group: mysqld3 is running MySQL server from group: mysqld4 is not running
Démarrage de la base 4
vmps60:/etc/rc.d# mysqld_multi start 4 vmps60:/etc/rc.d# mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running MySQL server from group: mysqld3 is running MySQL server from group: mysqld4 is running