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 onArchivo my.cnf
Se puede generar un archivo ejemplo ejecutando:
# mysqld_multi --exampleLa primera parte del archivo debe ser:
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
password = multipassLuego se agregan las entradas de las distintas instancias. Las instancias se deben numerar.