主库重启之前: SHOW MASTER STATUS; 主库重启之后: STOP SLAVE; 然后用之前获取的File和Position信息设置从库的主库: CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=12345; 最后重新启动从库复制: START SLAVE; Python脚本: import mysql.connector def check_master_status(): master_conn = mysql.connector.connect(user='masteruser', password='masterpass', host='masterhost') cursor = master_conn.cursor() cursor.execute("SHOW MASTER STATUS") master_status = cursor.fetchone() master_conn.close() return master_status def set_slave_master(log_file, log_pos): slave_conn = mysql.connector.connect(user='slaveuser', password='slavepass', host='slavehost') cursor = slave_conn.cursor() cursor.execute(f"STOP SLAVE") cursor.execute(f"CHANGE MASTER TO MASTER_LOG_FILE='{log_file}', MASTER_LOG_POS={log_pos}") cursor.execute(f"START SLAVE") slave_conn.close() if __name__ == "__main__": master_status = check_master_status() if master_status: set_slave_master(master_status[0], master_status[1])