User Tools

Site Tools


mysql:changemasters

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mysql:changemasters [2015/06/24 18:24] rlunaromysql:changemasters [2022/12/02 22:02] (current) – external edit 127.0.0.1
Line 75: Line 75:
 We have this: We have this:
  
-{{ :mysql:20150623_mysql_step_1.png |}}+{{ :mysql:20150623_mysql_step_1.png?200 |}}
  
 And now we want this: And now we want this:
  
-{{ :mysql:20150623_mysql_step_2.png |}}+{{:mysql:20150623_mysql_step_3.png?200|}}
  
 +For that, we have to: 
  
 +  - Stop the master
 +  - Check that both slaves are up-to-date
 +  - issue a [[https://dev.mysql.com/doc/refman/5.0/en/replication-solutions-switch.html|change master to]] command to the old slave
  
-This explains how to change the master of a running mysql database by the mechanism of: +==== Stop the master ====
  
-  - Create a new slave wihtout downtime +Nothing new under the sun: 
-  - Stop the current master and start a new master (the last slave)+
  
 +<code>
 +/etc/rc.d/mysql stop 
 +</code>
  
 +or:
 +
 +<code>
 +net stop mysql 
 +</code>
 +
 +==== Check that both slaves are up-to-date ====
 +
 +Among the information that ''show slave status\G'' displays, I've chosen Read_Master_Log_Pos to make sure
 +both database servers are in the same position. 
 +
 +==== Create (if it does not exist) a replication user in future-master ====
 +
 +<code>
 +grant replication slave, replication client on *.* to YOUR-REPLICATION-USERNAME identified by 'YOUR-REPLICATION-PASSWORD';
 +</code>
 +
 +==== Check master status an take note of the master log file and master log position ====
 +
 +We have to issue a ''show master status'' command to get the file and log position of our new master: 
 +
 +<code>
 +mysql> show master status\G
 +*************************** 1. row ***************************
 +             File: YOUR-MASTER-LOG-FILE
 +         Position: YOUR-MASTER-LOG-POS
 +     Binlog_Do_DB:
 + Binlog_Ignore_DB:
 +Executed_Gtid_Set:
 +1 row in set (0.00 sec)
 +</code>
 +
 +With this two values, YOUR-MASTER-LOG-FILE and YOUR-MASTER-LOG-POS, we can move to the 
 +slave and issue a change master to command.
 +
 +==== Issue a change master command ====
 +
 +In the slave server I've issued a ''change master to'' command:
 +
 +<code>
 +stop slave;
 +
 +change master to master_host='future-master', 
 +master_port=3306,
 +master_user='YOUR-REPLICATION-USERNAME',
 +master_password='YOUR-REPLICATION-PASSWORD',
 +master_log_file = 'YOUR-MASTER-LOG-FILE',
 +master_log_pos = YOUR-MASTER-LOG-POSITION;
 +
 +start slave;
 +</code>
 +
 +And I've stopped and started the slave. 
 +
 +===== Final check =====
 +
 +You can double check that your slave is working with the new configuration just by the method of looking 
 +one change made in the new master. 
  
-https://dev.mysql.com/doc/refman/5.0/en/replication-solutions-switch.html 
  
mysql/changemasters.1435163083.txt.gz · Last modified: 2022/12/02 22:02 (external edit)