' . "\n" . PMA_getIcon('s_replication.png') . $GLOBALS['strReplication'] . "\n" . '' . "\n"; PMA_Message::error('strNoPrivileges')->display(); require_once './libraries/footer.inc.php'; } /** * Handling control requests */ if (isset($GLOBALS['sr_take_action'])) { $refresh = false; if (isset($GLOBALS['slave_chagemaster'])) { $_SESSION['replication']['m_username'] = $sr['username'] = PMA_sqlAddslashes($GLOBALS['username']); $_SESSION['replication']['m_password'] = $sr['pma_pw'] = PMA_sqlAddslashes($GLOBALS['pma_pw']); $_SESSION['replication']['m_hostname'] = $sr['hostname'] = PMA_sqlAddslashes($GLOBALS['hostname']); $_SESSION['replication']['m_port'] = $sr['port'] = PMA_sqlAddslashes($GLOBALS['port']); $_SESSION['replication']['m_correct'] = ''; $_SESSION['replication']['sr_action_status'] = 'error'; $_SESSION['replication']['sr_action_info'] = $strReplicationUnknownError; $url = $sr['hostname']; if ($sr['port']!='') $url .= ':'.$sr['port']; $check_master = null; error_reporting(0); $check_master = @mysql_connect($url, $sr['username'], $sr['pma_pw']); error_reporting(15); unset($url); if (!$check_master) { $_SESSION['replication']['sr_action_status'] = 'error'; $_SESSION['replication']['sr_action_info'] = 'Unable to connect to master '. $sr['hostname'] .'. '; } else { $link_to_master = PMA_replication_connect_to_master($sr['username'], $sr['pma_pw'], $sr['hostname'], $sr['port']); $position = PMA_replication_slave_bin_log_master($link_to_master); $_SESSION['replication']['m_correct'] = true; if (PMA_replication_slave_change_master($sr['username'], $sr['pma_pw'], $sr['hostname'], $sr['port'], $position, true, false)) { $_SESSION['replication']['sr_action_status'] = 'error'; $_SESSION['replication']['sr_action_info'] = $GLOBALS['strReplicationUnableToChange']; } else { $_SESSION['replication']['sr_action_status'] = 'success'; $_SESSION['replication']['sr_action_info'] = sprintf($GLOBALS['strReplicationChangedSuccesfully'], $sr['hostname']); } } } elseif (isset($GLOBALS['sr_slave_server_control'])) { if ($GLOBALS['sr_slave_action']=='reset') { PMA_replication_slave_control("STOP"); PMA_DBI_try_query("RESET SLAVE;"); PMA_replication_slave_control("START"); } else { PMA_replication_slave_control($GLOBALS['sr_slave_action'], $GLOBALS['sr_slave_control_parm']); } $refresh = true; } elseif (isset($GLOBALS['sr_slave_skip_error'])) { $count = 1; if (isset($GLOBALS['sr_skip_errors_count'])) { $count = $GLOBALS['sr_skip_errors_count']*1; } PMA_replication_slave_control("STOP"); PMA_DBI_try_query("SET GLOBAL SQL_SLAVE_SKIP_COUNTER = ".$count.";"); PMA_replication_slave_control("START"); } elseif (isset($GLOBALS['sl_sync'])) { $src_link = PMA_replication_connect_to_master($_SESSION['replication']['m_username'], $_SESSION['replication']['m_password'], $_SESSION['replication']['m_hostname'], $_SESSION['replication']['m_port']); $trg_link = null; $data = PMA_DBI_fetch_result('SHOW MASTER STATUS', null, null, $src_link); // let's find out, which databases are replicated $do_db = array(); $ignore_db = array(); if (!empty($data[0]['Binlog_Do_DB'])) $do_db = explode($data[0]['Binlog_Do_DB'], ','); if (!empty($data[0]['Binlog_Ignore_DB'])) $ignore_db = explode($data[0]['Binlog_Ignore_DB'], ','); $tmp_alldbs = PMA_DBI_query('SHOW DATABASES;', $src_link); while ($tmp_row = PMA_DBI_fetch_row($tmp_alldbs)) { if ($tmp_row[0] == 'information_schema') continue; if (count($do_db)==0) { if (array_search($tmp_row[0], $ignore_db)!==false) { continue; } $dblist[] = $tmp_row[0]; PMA_DBI_query('CREATE DATABASE IF NOT EXISTS '.$tmp_row[0], $trg_link); } else { if (array_search($tmp_row[0], $do_db)!==false) { $dblist[] = $tmp_row[0]; PMA_DBI_query('CREATE DATABASE IF NOT EXISTS '.$tmp_row[0], $trg_link); } } } // end while if (isset($GLOBALS['repl_data'])) $data = true; else $data = false; foreach ($dblist as $db) { PMA_replication_synchronize_db($db, $src_link, $trg_link, $data); } } if ($refresh) Header("Location: ". PMA_generate_common_url($GLOBALS['url_params'])); unset($refresh); } /** * Displays the links */ require './libraries/server_links.inc.php'; echo '
'."\n"; echo '

'."\n"; echo ' '."\n"; echo $GLOBALS['strReplication']."\n"; echo '

'."\n"; if (isset($_SESSION['replication']['sr_action_status']) && isset($_SESSION['replication']['sr_action_info'])) { if ($_SESSION['replication']['sr_action_status']=='error') { PMA_Message::error($_SESSION['replication']['sr_action_info'])->display(); $_SESSION['replication']['sr_action_status'] = 'unknown'; } elseif ($_SESSION['replication']['sr_action_status']=='success') { PMA_Message::success($_SESSION['replication']['sr_action_info'])->display(); $_SESSION['replication']['sr_action_status'] = 'unknown'; } } if ($server_master_status) { if (!isset($GLOBALS['repl_clear_scr'])) { echo PMA_js_mootools_domready($jscode['master_replication']); echo '
'."\n"; echo ''. $GLOBALS['strReplicationMaster'] .''."\n"; echo $GLOBALS['strReplicationConfiguredMaster']."\n"; echo '\n"; echo '
'."\n"; } } elseif (!isset($GLOBALS['mr_configure']) && !isset($GLOBALS['repl_clear_scr'])) { $_url_params = $GLOBALS['url_params']; $_url_params['mr_configure'] = true; echo '
'."\n"; echo ''. $GLOBALS['strReplicationMaster'] .''."\n"; echo sprintf($GLOBALS['strReplicationServernConfiguredMaster'], PMA_generate_common_url($_url_params)) ."\n"; echo '
'."\n"; } if (isset($GLOBALS['mr_configure'])) { echo PMA_js_mootools_domready($jscode['configure_master']); echo '
'."\n"; echo ''. $GLOBALS['strReplicationMasterConfiguration'] .''."\n"; echo $GLOBALS['strReplicationMasterChooseMode'].'

'."\n"; echo ''."\n"; echo '

'."\n"; echo $GLOBALS['strReplicationSelectDatabases'].'
'."\n"; echo PMA_replication_db_multibox(); echo '

'."\n"; echo $GLOBALS['strReplicationAddLines'].'
'."\n"; echo '
server-id='. $serverid .'
log-bin=mysql-bin
log-error=mysql-bin.err
'."\n"; echo $GLOBALS['strReplicationRestartServer'] ."\n"; echo '
'."\n"; echo '
'; echo '
'."\n"; echo PMA_generate_common_hidden_inputs('', ''); echo ' '; echo '
'."\n"; echo '
'; require_once './libraries/footer.inc.php'; exit; } echo '
'; if (!isset($GLOBALS['repl_clear_scr'])) { echo '
'."\n"; echo 'Server Replication'."\n"; if ($server_slave_status) { echo PMA_js_mootools_domready($jscode['slave_control']); echo '
'."\n"; $_url_params = $GLOBALS['url_params']; $_url_params['sr_take_action'] = true; $_url_params['sr_slave_server_control'] = true; if ($server_slave_replication[0]['Slave_IO_Running']=='No') $_url_params['sr_slave_action'] = 'start'; else $_url_params['sr_slave_action'] = 'stop'; $_url_params['sr_slave_control_parm'] = 'IO_THREAD'; $slave_control_io_link = PMA_generate_common_url($_url_params); if ($server_slave_replication[0]['Slave_SQL_Running']=='No') $_url_params['sr_slave_action'] = 'start'; else $_url_params['sr_slave_action'] = 'stop'; $_url_params['sr_slave_control_parm'] = 'SQL_THREAD'; $slave_control_sql_link = PMA_generate_common_url($_url_params); if ($server_slave_replication[0]['Slave_IO_Running']=='No' || $server_slave_replication[0]['Slave_SQL_Running']=='No') $_url_params['sr_slave_action'] = 'start'; else $_url_params['sr_slave_action'] = 'stop'; $_url_params['sr_slave_control_parm'] = null; $slave_control_full_link = PMA_generate_common_url($_url_params); $_url_params['sr_slave_action'] = 'reset'; $slave_control_reset_link = PMA_generate_common_url($_url_params); $_url_params = $GLOBALS['url_params']; $_url_params['sr_slave_skip_error'] = true; $slave_skip_error_link = PMA_generate_common_url($_url_params); if ($server_slave_replication[0]['Slave_SQL_Running']=='No') PMA_Message::warning('Slave SQL Thread not running!')->display(); if ($server_slave_replication[0]['Slave_IO_Running']=='No') PMA_Message::warning('Slave IO Thread not running!')->display(); $_url_params = $GLOBALS['url_params']; $_url_params['sl_configure'] = true; $_url_params['repl_clear_scr'] = true; $reconfiguremaster_link = PMA_generate_common_url($_url_params); echo $GLOBALS['strReplicationSlaveConfigured']."\n"; echo '
'."\n"; echo ''."\n"; } elseif (!isset($GLOBALS['sl_configure'])) { $_url_params = $GLOBALS['url_params']; $_url_params['sl_configure'] = true; $_url_params['repl_clear_scr'] = true; echo sprintf($GLOBALS['strReplicationSlaveNotConfigured'], PMA_generate_common_url($_url_params))."\n"; } echo '
'."\n"; } if (isset($GLOBALS['sl_configure'])) { PMA_replication_gui_changemaster("slave_chagemaster"); } echo ''."\n"; require_once './libraries/footer.inc.php'; ?>