Différences entre les versions de « Mysql multi instance »

De BlaxWiki
Aller à la navigationAller à la recherche
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
Il est possible d'installer une seule fois mysql et d'avoir plusieurs instances (donc plusieurs bases mysql) qui tournent sur différents ports. Il va falloir faire un script d'init et  
Il est possible d'installer une seule fois mysql et d'avoir plusieurs instances (donc plusieurs bases mysql) qui tournent sur différents ports. Il va falloir faire un script d'init et  
un fichier de conf par instance. On pourrait aussi installer 3 mysql pour que chacun ait son binaire.
un fichier de conf par instance. On pourrait aussi installer 3 mysql pour que chacun ait son binaire.
Les paramètres ports, pid et socket doivent etre uniques; pour les logs il est préférable que chacun ait ses logs.
Les paramètres ports, pid et socket doivent etre uniques; pour les logs il est préférable que chacun ait ses logs. Pour se connecter avec mysql ou faire un mysqldump, il faut préciser
le port et la socket.
Ici on a 3 instances : my-demo port 3309, my-prod port 3306 et my-preprod 3308.
Ici on a 3 instances : my-demo port 3309, my-prod port 3306 et my-preprod 3308.


Ligne 75 : Ligne 76 :
socket                  = /tmp/mysql-prod.sock
socket                  = /tmp/mysql-prod.sock
</pre>
</pre>
[[Catégorie:Software]]
[[Catégorie:Software]]

Version actuelle datée du 30 janvier 2013 à 12:03

Il est possible d'installer une seule fois mysql et d'avoir plusieurs instances (donc plusieurs bases mysql) qui tournent sur différents ports. Il va falloir faire un script d'init et un fichier de conf par instance. On pourrait aussi installer 3 mysql pour que chacun ait son binaire. Les paramètres ports, pid et socket doivent etre uniques; pour les logs il est préférable que chacun ait ses logs. Pour se connecter avec mysql ou faire un mysqldump, il faut préciser le port et la socket. Ici on a 3 instances : my-demo port 3309, my-prod port 3306 et my-preprod 3308.

  • Script d'init

Cela dépend des versions de mysql, ici nous sommes en 5.5 (à adapter pour chacune des instances)

au début du fichier
++ basedir=/opt/applis/mysql
++ datadir=/opt/datas/preprod/mysql
++ conf=/etc/my-preprod.cnf
++ pid_file=/opt/datas/demo/mysql/mysql.pid
++ server_pid_file=/opt/datas/demo/mysql/mysql.pid

Supprimer la ligne conf= (ligne 187), entre  # Try to find basedir in /etc/my.cnf et print_defaults=

Au niveau du start, rajouter l'argument --defaults-file=$conf sur la ligne de $bindir/mysqld_safe --defaults-file=$conf --datadir=$datadir --pid-file=$server_pid_file...
  • Fichier de configuration
::::::::::::::
/etc/my-demo.cnf
::::::::::::::
[mysqld]
log-error               = /var/log/mysql/error-demo.log
slow-query-log          = 1
slow-query-log-file     = /var/log/mysql/slowquery-demo.log
wait_timeout            = 60
query_cache_size        = 16777216
tmp_table_size          = 67108864
max_connections         = 200
thread_cache_size       = 128
max_heap_table_size     = 33554432
table_cache             = 512
query_cache_limit       = 2097152
port                    = 3308
socket                  = /tmp/mysql-demo.sock

::::::::::::::
/etc/my-preprod.cnf
::::::::::::::
[mysqld]
log-error               = /var/log/mysql/error-preprod.log
slow-query-log          = 1
slow-query-log-file     = /var/log/mysql/slowquery-preprod.log
wait_timeout            = 60
query_cache_size        = 16777216
tmp_table_size          = 67108864
max_connections         = 200
thread_cache_size       = 128
max_heap_table_size     = 33554432
table_cache             = 512
query_cache_limit       = 2097152
port                    = 3307
socket                  = /tmp/mysql-preprod.sock

::::::::::::::
/etc/my-prod.cnf
::::::::::::::
[mysqld]
log-error               = /var/log/mysql/error-prod.log
slow-query-log          = 1
slow-query-log-file     = /var/log/mysql/slowquery-prod.log
wait_timeout            = 60
query_cache_size        = 16777216
tmp_table_size          = 67108864
max_connections         = 200
thread_cache_size       = 128
max_heap_table_size     = 33554432
table_cache             = 512
query_cache_limit       = 2097152
port                    = 3306
socket                  = /tmp/mysql-prod.sock