mysqld_multi se utiliza para administrar diversos procesos mysqld que esperan conexiones en diferentes archivos socket en Unix y puertos TCP/IP. Puede arrancar o parar servidores, o reportar su estado actual.
        El programa busca grupos llamados [mysqld#]
        en my.cnf (o en el fichero nombrado por la
        opción --config-file). #
        puede ser cualquier entero positivo. Nos referiremos a este
        número como el número del grupo de opciones en la siguiente
        discusión, o GNR (N. del T.:
        acrónimo en ingés). Los números de grupo distinguen grupos de
        opciones de otros y se usan como argumentos para
        mysqld_multi para especificar qué servidores
        quiere arrancar, parar, u obtener un reporte de estatus. Las
        opciones listadas en esos grupos son las mismas que usaría en
        el grupo [mysqld] para arranacar
        mysqld. (Consulte, por ejemplo,
        Sección 2.9.2.2, “Arrancar y parar MySQL automáticamente”.) Sin embargo, cuando use
        múltiples servidores es necesario que cada uno use su propio
        valor para opciones tales como el fichero de socket de Unix y el
        número del puerto TCP/IP. Para más información sobre qué
        opciones deben ser únicas por servidor en un entorno de
        múltiples servidores, consulte
        Sección 5.11, “Ejecutar más de un servidor MySQL en la misma máquina”.
      
Para invocar mysqld_multi, use la siguiente sintaxis:
shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR]...]
        start, stop, y
        report indican qué operaciones desea
        realizar. Puede realizar la operación designada en un único
        servidor o en múltiples servidores, dependiendo de la lista
        GNR que sigue al nombre de la
        opción. Si no hay ninguna lista,
        mysqld_multi realiza la operación para todos
        los servidores en el fichero de opciones.
      
        Cada valor GNR representa un número
        de grupo de opciones o rango de números de grupo. El valor debe
        ser un número al final de un nombre de grupo en el fichero de
        opciones. Por ejemplo, el GNR para un
        grupo llamado [mysqld17] es
        17. Para especificar un rango de números,
        separe el primero y último número por un guión. El valor
        GNR 10-13
        reperesenta los grupos desde [mysqld10] hasta
        [mysqld13]. Multiples grupos o rangos de
        grupos pueden especificarse en la línea de comandos, separados
        por comas. No deben haber caráceteres de espacios en blanco
        (espacios o tabuladores) en la lista+
        GNR ; cualquier cosa después de un
        carácter de espacio en blanco se ignora.
      
        Este comando arranca un único servidor usando el grupo de
        opciones [mysqld17]:
      
shell> mysqld_multi start 17
        Este comando para diversos servidores, usando los grupos de
        opciones [mysql8] y del
        [mysqld10] hasta el
        [mysqld13]:
      
shell> mysqld_multi stop 8,10-13
Para un ejemplo sobre cómo puede crear un fichero de opciones, use este comando:
shell> mysqld_multi --example
mysqld_multi soporta las siguientes opciones:
            --config-file=
          nombre
            Especifique el nombre de un fichero de opciones alternativo.
            Esto afecta a dónde mysqld_multi busca
            grupos de opciones [mysqld#] . Sin esta
            opción todas las opciones se leen del fichero habitual
            my.cnf. La opción no afecta a dónde
            mysqld_multi lee sus propias opciones,
            que siempre se toman del grupo
            [mysqld_multi] en el fichero habitual
            my.cnf.
          
Muestra un fichero de opciones de ejemplo..
Muestra un mensaje de ayuda y sale.
Especifica el nombre del fichero de log. Si el fichero existe, la salida de log se añade al mismo.
El binario mysqladmin a usar para parar los servidores.
            El binario mysqld a usar. Tenga en cuenta
            que puede especificar mysqld_safe como el
            valor para esta opción. Las opciones se pasan a
            mysqld. Sólo asegúrese que tiene el
            directorio donde se encuentra mysqld en
            su variable de entorno PATH o fije
            mysqld_safe.
          
Muestra información del log en el stdout en lugar del fichero de log. Por defecto, la salida va al fichero de log.
La constraseña de la cuenta MySQL a usar cuando invoque mysqladmin. Tenga en cuenta que el valor de la contraseña no es opcional para esta opción, no como en otros programas MySQL.
Desactiva los mensajes de advertencia.
            Se conecta a cada servidor MySQL via puerto TCP/IP en lugar
            del fichero socket Unix. (Si un fichero socket no se
            encuentra, el servidor puede ejecutarse, pero accesible
            sólo via puerto TCP/IP.) Por defecto, las conexiones se
            hacen usando un fichero socket Unix. Esta opción afecta las
            operaciones stop y
            report.
          
El nombre de usuario de la cuenta MySQL a usar al invocar mysqladmin.
Es más detallado.
Muestra información sobre la versión y sale.
Apuntes acerca de mysqld_multi:
            Asegúrese que la cuenta MySQL usada para parar los
            servidores mysqld (con el programa
            mysqladmin ) tienen el mismo nombre de
            usuario y contraseña para cada servidor. También
            asegúrese que la cuenta tiene el privilegio
            SHUTDOWN. Si los servidores que quiere
            administrar tienen distintos nombres de usuario o
            contraseñas para las cuentas administrativas, puede querer
            crear una cuenta en cada servidor que tenga el mismo nombre
            de usuario y contraseña. Por ejemplo, puede inicializar una
            cuenta común multi_admin ejecutando el
            siguiente comando en cada servidor:
          
shell> mysql -u root -S /tmp/mysql.sock -proot_password
mysql> GRANT SHUTDOWN ON *.*
    -> TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
            Consulte Sección 5.6.2, “Cómo funciona el sistema de privilegios”. Tiene que hacerlo
            para cada servidor mysqld. Cambie los
            parámetros de conexión apropiadamente cuando se conecte a
            cada uno. Tenga en cuenta que la parte de servidor del
            nombre de la cuenta debe permitirle conectarse como
            multi_admin desde el servidor desde el
            que quiere ejecutar mysqld_multi.
          
            La opción --pid-file es muy importante
            si está usando mysqld_safe para arrancar
            mysqld (por ejemplo,
            --mysqld=mysqld_safe) Cada
            mysqld debe tener su propio fichero con
            el ID de proceso. La ventaja de usar
            mysqld_safe en lugar de
            mysqld es que
            mysqld_safe ``guarda'' su proceso
            mysqld y lo reinicia si el proceso
            termina debido a una señal enviada usando kill
            -9 o por otras razones, tales como un segmentation
            fault. Por favor, tenga en cuenta que el script
            mysqld_safe puede requerir que lo
            arranque desde un lugar determinado. Esto significa que
            puede tener que cambiar la localización a un cierto
            directorio antes de ejecutar
            mysqld_multi. Si tiene problemas
            arrancando, por favor consulte el script
            mysqld_safe. Compruebe especialmente las
            líneas:
          
---------------------------------------------------------------- MY_PWD=`pwd` # Check if we are starting this relative (for the binary release) if test -d $MY_PWD/data/mysql -a -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld ----------------------------------------------------------------
Consulte Sección 5.1.3, “El script de arranque del servidor mysqld_safe”. Los chequeos realizados por estas líneas deberían tener éxito, o podría encontrar problemas.
El fichero socket de Unix y el puerto TCP/IP deben ser diferentes para cada mysqld.
            Puede usar la opción --user para
            mysqld, pero para hacerlo debe ejecutar
            el script mysqld_multi como el usuario
            root en Unix. Tener la opción en el
            fichero de opciones no importa; sólo obtiene una
            advertencia si no es el súper usuario y los procesos
            mysqld se inician bajo su propia cuenta
            Unix.
          
Importante: Asegúrese que el directorio de datos es completamente accesible para todas las cuentas Unix con las que puedea iniciarse el proceso mysqld. No use la cuenta root de Unix para ello, a no ser que sepa lo que hace.
Más importante: Antes de usar mysqld_multi aségurese de entender el significado de las opciones que se pasan a los servidores mysqld y porqué quiere tener procesos mysqld separados. Cuidado con los peligros de usar múltipes servidores mysqld con el mismo directorio de datos. Use diferentes directorios de datos, a no ser que sepa lo que hace. Iniciar múltiples servidores con el mismo directorio de datos no proporciona mejor rendimiento en un entorno threaded. Consulte Sección 5.11, “Ejecutar más de un servidor MySQL en la misma máquina”.
        El siguiente ejemplo muestra como podría inicializar un fichero
        de opciones para usar con mysqld_multi. El
        primer y quinto grupo [mysqld#] se ha omitido
        intencionadamente del ejemplo para ilustrar que puede tener
        ``vacíos'' en el fichero de opciones. Esto proporciona una
        mayor flexibilidad. El order en que los programas
        mysqld arrancan o se paran depende del order
        en que aparecen en el fichero de opciones.
      
# This file should probably be in your home dir (~/.my.cnf) # or /etc/my.cnf # Version 2.1 by Jani Tolonen [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe mysqladmin = /usr/local/bin/mysqladmin user = multi_admin password = multipass [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /usr/local/mysql/var2/hostname.pid2 datadir = /usr/local/mysql/var2 language = /usr/local/share/mysql/english user = john [mysqld3] socket = /tmp/mysql.sock3 port = 3308 pid-file = /usr/local/mysql/var3/hostname.pid3 datadir = /usr/local/mysql/var3 language = /usr/local/share/mysql/swedish user = monty [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /usr/local/mysql/var4/hostname.pid4 datadir = /usr/local/mysql/var4 language = /usr/local/share/mysql/estonia user = tonu [mysqld6] socket = /tmp/mysql.sock6 port = 3311 pid-file = /usr/local/mysql/var6/hostname.pid6 datadir = /usr/local/mysql/var6 language = /usr/local/share/mysql/japanese user = jani
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

