Diferencia entre revisiones de «MySQL Multi»
(Página nueva: <tt>''NOTA: Página en construcción aún.''</tt> == Introducción a MySQL Multi == En un mismo servidor se pueden tener múltiples instancias de MySQL. En general estas instancias d...) |
|||
Línea 4: | Línea 4: | ||
En un mismo servidor se pueden tener múltiples instancias de MySQL. En general estas instancias deberían apuntar a distintos repositorios de datos (varias a un mismo repositorio de datos lo único que trae es problemas). Esto permitiría poder manejar el prendido y apagado de cada instancia en forma independiente. Otra ventaja que permite tener varias instancias, es dejar que cada usuario maneje su propia instancia de MySQL. | En un mismo servidor se pueden tener múltiples instancias de MySQL. En general estas instancias deberían apuntar a distintos repositorios de datos (varias a un mismo repositorio de datos lo único que trae es problemas). Esto permitiría poder manejar el prendido y apagado de cada instancia en forma independiente. Otra ventaja que permite tener varias instancias, es dejar que cada usuario maneje su propia instancia de MySQL. | ||
− | MySQL proporciona el comando <tt>mysqld_multi</tt> para manejar múltiples instancias. Además, en el archivo <tt>my.cnf</tt> es que se configuran las instancias. | + | MySQL proporciona el comando <tt>mysqld_multi</tt> para manejar múltiples instancias. Además, en el archivo <tt>my.cnf</tt> es que se configuran las instancias. El <tt>my.cnf</tt> general se pone en <tt>/etc</tt>, y los archivos <tt>my.cnf</tt> por usuario, pueden ir en <tt>~/.my.cnf</tt>. |
+ | |||
+ | Para que funcionen como demonios las instancias, y se inicien, se debe colocar el demonio <tt>mysqld_multi</tt> en <tt>/etc/init.d</tt> (distribuciones ''RedHat''). | ||
+ | |||
+ | == Archivo <tt>/etc/init.d/mysqld_multi</tt> == | ||
+ | Archivo copiado de la distribución de MySQL disponible en el repositorio de ''CentOS-Plus''. | ||
+ | <source lang="bash"> | ||
+ | #!/bin/sh | ||
+ | # | ||
+ | # A simple startup script for mysqld_multi by Tim Smith and Jani Tolonen. | ||
+ | # This script assumes that my.cnf file exists either in /etc/my.cnf or | ||
+ | # /root/.my.cnf and has groups [mysqld_multi] and [mysqldN]. See the | ||
+ | # mysqld_multi documentation for detailed instructions. | ||
+ | # | ||
+ | # This script can be used as /etc/init.d/mysql.server | ||
+ | # | ||
+ | # Comments to support chkconfig on RedHat Linux | ||
+ | # chkconfig: 2345 64 36 | ||
+ | # description: A very fast and reliable SQL database engine. | ||
+ | # | ||
+ | # Version 1.0 | ||
+ | # | ||
+ | |||
+ | basedir=/srv/mysqldata | ||
+ | bindir=/usr/bin | ||
+ | |||
+ | if test -x $bindir/mysqld_multi | ||
+ | then | ||
+ | mysqld_multi="$bindir/mysqld_multi"; | ||
+ | else | ||
+ | echo "Can't execute $bindir/mysqld_multi from dir $basedir"; | ||
+ | exit; | ||
+ | fi | ||
+ | |||
+ | case "$1" in | ||
+ | 'start' ) | ||
+ | "$mysqld_multi" start $2 | ||
+ | ;; | ||
+ | 'stop' ) | ||
+ | "$mysqld_multi" stop $2 | ||
+ | ;; | ||
+ | 'report'|'status' ) | ||
+ | "$mysqld_multi" report $2 | ||
+ | ;; | ||
+ | 'restart' ) | ||
+ | "$mysqld_multi" stop $2 | ||
+ | "$mysqld_multi" start $2 | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Uso: $0 {start|stop|report|status|restart}" >&2 | ||
+ | ;; | ||
+ | esac | ||
+ | </source> | ||
+ | |||
+ | Recordar desactivar el demonio ''normal'' de MySQL y activar este después de copiarlo. | ||
+ | |||
+ | <source> | ||
+ | # chkconfig mysqld off | ||
+ | # chkconfig --add mysqld_multi | ||
+ | # chkconfig mysqld_multi on | ||
+ | </source> | ||
== Archivo <tt>my.cnf</tt> == | == Archivo <tt>my.cnf</tt> == | ||
Se puede generar un archivo ejemplo ejecutando: | Se puede generar un archivo ejemplo ejecutando: | ||
− | <source | + | <source> |
# mysqld_multi --example | # mysqld_multi --example | ||
</source> | </source> | ||
Línea 20: | Línea 80: | ||
password = multipass | password = multipass | ||
</source> | </source> | ||
+ | |||
+ | Luego se agregan las entradas de las distintas instancias. Las instancias se ''deben'' numerar. | ||
+ | |||
+ | == Agregando una instancia de mysql == | ||
+ | |||
+ | === Agregando la configuración de la nueva instancia === | ||
+ | |||
== Ver también == | == Ver también == |
Revisión del 20:56 13 nov 2008
NOTA: Página en construcción aún.
Contenido
Introducción a MySQL Multi
En un mismo servidor se pueden tener múltiples instancias de MySQL. En general estas instancias deberían apuntar a distintos repositorios de datos (varias a un mismo repositorio de datos lo único que trae es problemas). Esto permitiría poder manejar el prendido y apagado de cada instancia en forma independiente. Otra ventaja que permite tener varias instancias, es dejar que cada usuario maneje su propia instancia de MySQL.
MySQL proporciona el comando mysqld_multi para manejar múltiples instancias. Además, en el archivo my.cnf es que se configuran las instancias. El my.cnf general se pone en /etc, y los archivos my.cnf por usuario, pueden ir en ~/.my.cnf.
Para que funcionen como demonios las instancias, y se inicien, se debe colocar el demonio mysqld_multi en /etc/init.d (distribuciones RedHat).
Archivo /etc/init.d/mysqld_multi
Archivo copiado de la distribución de MySQL disponible en el repositorio de CentOS-Plus.
#!/bin/sh
#
# A simple startup script for mysqld_multi by Tim Smith and Jani Tolonen.
# This script assumes that my.cnf file exists either in /etc/my.cnf or
# /root/.my.cnf and has groups [mysqld_multi] and [mysqldN]. See the
# mysqld_multi documentation for detailed instructions.
#
# This script can be used as /etc/init.d/mysql.server
#
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: A very fast and reliable SQL database engine.
#
# Version 1.0
#
basedir=/srv/mysqldata
bindir=/usr/bin
if test -x $bindir/mysqld_multi
then
mysqld_multi="$bindir/mysqld_multi";
else
echo "Can't execute $bindir/mysqld_multi from dir $basedir";
exit;
fi
case "$1" in
'start' )
"$mysqld_multi" start $2
;;
'stop' )
"$mysqld_multi" stop $2
;;
'report'|'status' )
"$mysqld_multi" report $2
;;
'restart' )
"$mysqld_multi" stop $2
"$mysqld_multi" start $2
;;
*)
echo "Uso: $0 {start|stop|report|status|restart}" >&2
;;
esac
Recordar desactivar el demonio normal de MySQL y activar este después de copiarlo.
# chkconfig mysqld off
# chkconfig --add mysqld_multi
# chkconfig mysqld_multi on
Archivo my.cnf
Se puede generar un archivo ejemplo ejecutando:
# mysqld_multi --example
La primera parte del archivo debe ser:
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
password = multipass
Luego se agregan las entradas de las distintas instancias. Las instancias se deben numerar.