CHANGE MASTER TO master_def [, master_def] ...
master_def =
      MASTER_HOST = 'host_name'
    | MASTER_USER = 'user_name'
    | MASTER_PASSWORD = 'password'
    | MASTER_PORT = port_num
    | MASTER_CONNECT_RETRY = count
    | MASTER_LOG_FILE = 'master_log_name'
    | MASTER_LOG_POS = master_log_pos
    | RELAY_LOG_FILE = 'relay_log_name'
    | RELAY_LOG_POS = relay_log_pos
    | MASTER_SSL = {0|1}
    | MASTER_SSL_CA = 'ca_file_name'
    | MASTER_SSL_CAPATH = 'ca_directory_name'
    | MASTER_SSL_CERT = 'cert_file_name'
    | MASTER_SSL_KEY = 'key_file_name'
    | MASTER_SSL_CIPHER = 'cipher_list'
          Modifie les paramètres que l'esclave utilise pour se
          connecter et pour communiquer avec le serveur maître. Les
          valeurs possibles pour master_def sont
          présentées ci-dessus.
        
          Les options de log de relais,
          RELAY_LOG_FILE et
          RELAY_LOG_POS, sont disponibles depuis
          MySQL 4.0.
        
          Les options SSL, MASTER_SSL,
          MASTER_SSL_CA,
          MASTER_SSL_CAPATH,
          MASTER_SSL_CERT,
          MASTER_SSL_KEY et
          MASTER_SSL_CIPHER, sont disponibles depuis
          MySQL 4.1.1. Vous pouvez changer ces options même sur les
          esclaves qui sont compilé sans le support SSL. Elles seront
          sauvées dans le fichier master.info mais
          ignorées jusqu'à ce que le support SSL soit activé.
        
Par exemple :
mysql>CHANGE MASTER TO->MASTER_HOST='master2.mycompany.com',->MASTER_USER='replication',->MASTER_PASSWORD='bigs3cret',->MASTER_PORT=3306,->MASTER_LOG_FILE='master2-bin.001',->MASTER_LOG_POS=4,->MASTER_CONNECT_RETRY=10;mysql>CHANGE MASTER TO->RELAY_LOG_FILE='slave-relay-bin.006',->RELAY_LOG_POS=4025;
          MASTER_USER,
          MASTER_PASSWORD,
          MASTER_SSL,
          MASTER_SSL_CA,
          MASTER_SSL_CAPATH,
          MASTER_SSL_CERT,
          MASTER_SSL_KEY, et
          MASTER_SSL_CIPHER sont des informations qui
          permettent à l'esclave de se connecter au maître. Si vous
          omettez certains paramètres, les paramètres omis
          conserveront leur ancienne valeur. Par exemple, si le mot de
          passe sur le maître a changé, il suffit de faire :
        
mysql>STOP SLAVE; -- if replication was runningmysql>CHANGE MASTER TO MASTER_PASSWORD='new3cret';mysql>START SLAVE; -- if you want to restart replication
pour indiquer à l'esclave le nouveau mot de passe : il n'y a pas besoin de spécifier les informations qui n'ont pas changé, comme l'hôte, le port, l'utilisateur, etc...
          MASTER_HOST, MASTER_PORT
          sont le nom d'hôte ou l'adresse IP du maître, et son port
          TCP. Notez que si MASTER_HOST est égal à
          localhost, alors, comme généralement avec
          MySQL, le port sera ignoré si les sockets Unix sont
          utilisables.
        
          Si vous spécifiez MASTER_HOST ou
          MASTER_PORT, l'esclave supposera que le
          serveur maître est différent du précédent, même si vous
          spécifier les mêmes valeurs d'hôte et de port que
          précédemment. Dans ce cas, les anciennes valeurs et position
          de l'historique binaire ne sont plus valides. Ainsi, si vous
          ne spécifiez pas MASTER_LOG_FILE et
          MASTER_LOG_POS dans la commande,
          MASTER_LOG_FILE='' et
          MASTER_LOG_POS=4 sont ajoutés
          silencieusement.
        
          MASTER_LOG_FILE et
          MASTER_LOG_POS sont les coordonnées
          auxquelles le thread d'I/O doit commencer à lire chez le
          maître, lorsque le thread redémarrera. Si vous spécifiez
          l'un d'entre eux, vous ne pourrez pas spécifier
          RELAY_LOG_FILE ou
          RELAY_LOG_POS. Si
          MASTER_LOG_FILE, ni
          MASTER_LOG_POS n'ont été spécifiés,
          alors les dernières coordonnées du thread
          esclave d'avant la commande CHANGE
          MASTER seront utilisées. Cela assure que la
          réplication ne connaît pas de discontinuité, même si le
          thread esclave était en retard sur le thread d'I/O, alors que
          vous ne voulez changer que le mot de passe. Ce comportement
          sécuritaire a été introduit à partir de MySQL versions
          4.0.17 et 4.1.1. Avant ces versions, les coordonnées
          utilisées celles du thread d'I/O, avant que la commande
          CHANGE MASTER soit émise, ce qui
          conduisait à des pertes d'événements au niveau du maître,
          et donc, la corruption de la réplication.
        
          CHANGE MASTER efface tous les
          logs de relais (et en démarre de nouveaux), à
          moins que vous ne spécifiez l'option
          RELAY_LOG_FILE ou
          RELAY_LOG_POS (dans ce cas, les logs de
          relais seront conservés; depuis MySQL 4.1.1 la variable
          globale RELAY_LOG_PURGE sera
          automatiquement mise à 0). CHANGE MASTER
          TO modifie master.info et
          relay-log.info.
        
          CHANGE MASTER sert à configurer un esclave
          lorsque vous avez une sauvegarde du maître, son log et la
          position qui correspond à la sauvegarde du maître. Vous
          pouvez utiliser la commande CHANGE MASTER TO
          MASTER_LOG_FILE='log_name_on_master',
          MASTER_LOG_POS=log_offset_on_master sur l'esclave
          après la restauration de la sauvegarde.
        
          Le premier exemple ci-dessus (CHANGE MASTER TO
          MASTER_HOST='master2.mycompany.com' etc) modifie les
          coordonnées du maître et de son log binaire. Cela est utile
          lorsque vous voulez que l'esclave réplique le maître. Le
          second exemple, moins fréquent, sert lorsque l'esclave a des
          logs de relais que vous voulez utiliser à nouveau. Pour cela,
          le maître n'a pas besoin d'être rejoint : il suffit
          d'utiliser la commande CHANGE MASTER TO et
          de lancer le thread SQL START SLAVE
          SQL_THREAD. Vous pouvez même utiliser cela dans une
          configuration de réplication, sur un serveur indépendant,
          pour assurer la restauration après crash. Supposez que votre
          serveur soit planté, et que vous avez restauré la
          sauvegarde. Vous voulez que le serveur exécute à nouveau ses
          propres logs (non pas des logs de relais, mais ses logs
          binaires), qui sont par exemple, stockés sous le nom
          myhost-bin.*. Tout d'abord, faite une
          copie des fichiers de log dans un entrepôt, au cas où une
          erreur de manipulation surviendrait, et que le serveur vide
          ses logs. Si vous utilisez MySQL 4.1.1 ou plus récent,
          utilisez la commande suivante pour plus de sécurité :
          SET GLOBAL RELAY_LOG_PURGE=0.
        
          Puis, lancez le serveur sans log-bin, et
          avec un nouvel identifiant (différent du précédent), avec
          l'option relay-log=myhost-bin (pour faire
          croire au serveur que ses propres logs sont des logs de
          relais), et skip-slave-start. Puis, envoyez
          cette commande :
        
mysql>CHANGE MASTER TO->RELAY_LOG_FILE='myhost-bin.153',->RELAY_LOG_POS=410,->MASTER_HOST='some_dummy_string';mysql>START SLAVE SQL_THREAD;
Le serveur va alors lire et exécuter ses propres logs, et rattraper les données jusqu'au crash.
          Une fois la restauration finie, faites STOP
          SLAVE, éteignez le serveur, supprimez
          master.info et
          relay-log.info, puis relancez le serveur
          avec ses options originales.
        
          Pour le moment, spécifier MASTER_HOST
          (même avec une valeur insignifiante) est obligatoire pour que
          le serveur pense qu'il est un esclave. Donner au serveur un
          nouvel identifiant, différent du précédent, est aussi
          obligatoire, car sinon, le serveur va voir des événements
          avec son identifiant, et il va conclure que c'est une
          réplication circulaire, et il va les ignorer. Dans le futur,
          nous envisageons de nous débarasser de ces petites
          contraintes.
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

