Diferencia entre revisiones de «MySQL Multi»

De FJWiki
Saltar a: navegación, buscar
(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 lang="bash">
+
<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.

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.

Agregando una instancia de mysql

Agregando la configuración de la nueva instancia

Ver también