Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
' . "\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_changemaster'])) {
$_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;
// Attempt to connect to the new master server
$link_to_master = PMA_replication_connect_to_master($sr['username'], $sr['pma_pw'], $sr['hostname'], $sr['port']);
if (! $link_to_master) {
$_SESSION['replication']['sr_action_status'] = 'error';
$_SESSION['replication']['sr_action_info'] = sprintf($GLOBALS['strReplicationErrorMasterConnect'], $sr['hostname']);
} else {
// Read the current master position
$position = PMA_replication_slave_bin_log_master($link_to_master);
if (empty($position)) {
$_SESSION['replication']['sr_action_status'] = 'error';
$_SESSION['replication']['sr_action_info'] = $GLOBALS['strReplicationErrorGetPosition'];
} else {
$_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'])) {
// TODO username, host and port could be read from 'show slave status',
// when asked for a password this might work in more situations the just after changing master (where the master password is stored in session)
$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; // using null to indicate the current PMA server
$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();
$dblist = 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
unset($do_db, $ignore_db, $data);
if (isset($GLOBALS['repl_data'])) {
$include_data = true;
} else {
$include_data = false;
}
foreach ($dblist as $db) {
PMA_replication_synchronize_db($db, $src_link, $trg_link, $include_data);
}
// TODO some form of user feedback error/success would be nice
// What happens if $dblist is empty?
// or sync failed?
}
if ($refresh) {
Header("Location: ". PMA_generate_common_url($GLOBALS['url_params']));
}
unset($refresh);
}
/**
* Displays the links
*/
require './libraries/server_links.inc.php';
echo '