Add basic support for MySQL replication
This commit is contained in:
parent
a062e9cc58
commit
2a534798fa
|
@ -972,6 +972,14 @@ if (!defined("DRIVER")) {
|
||||||
return get_key_vals("SHOW STATUS");
|
return get_key_vals("SHOW STATUS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get replication status of master or slave
|
||||||
|
* @param string
|
||||||
|
* @return array ($name => $value)
|
||||||
|
*/
|
||||||
|
function replication_status($type) {
|
||||||
|
return get_rows("SHOW $type STATUS");
|
||||||
|
}
|
||||||
|
|
||||||
/** Convert field in select and edit
|
/** Convert field in select and edit
|
||||||
* @param array one element from fields()
|
* @param array one element from fields()
|
||||||
* @return string
|
* @return string
|
||||||
|
|
|
@ -17,6 +17,7 @@ function connect_error() {
|
||||||
'processlist' => lang('Process list'),
|
'processlist' => lang('Process list'),
|
||||||
'variables' => lang('Variables'),
|
'variables' => lang('Variables'),
|
||||||
'status' => lang('Status'),
|
'status' => lang('Status'),
|
||||||
|
'replication' => lang('Replication'),
|
||||||
) as $key => $val) {
|
) as $key => $val) {
|
||||||
if (support($key)) {
|
if (support($key)) {
|
||||||
echo "<a href='" . h(ME) . "$key='>$val</a>\n";
|
echo "<a href='" . h(ME) . "$key='>$val</a>\n";
|
||||||
|
@ -77,7 +78,7 @@ if (isset($_GET["import"])) {
|
||||||
$_GET["sql"] = $_GET["import"];
|
$_GET["sql"] = $_GET["import"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(DB != "" ? $connection->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) {
|
if (!(DB != "" ? $connection->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["replication"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) {
|
||||||
if (DB != "" || $_GET["refresh"]) {
|
if (DB != "" || $_GET["refresh"]) {
|
||||||
restart_session();
|
restart_session();
|
||||||
set_session("dbs", null);
|
set_session("dbs", null);
|
||||||
|
|
|
@ -65,6 +65,8 @@ if (isset($_GET["download"])) {
|
||||||
include "./user.inc.php";
|
include "./user.inc.php";
|
||||||
} elseif (isset($_GET["processlist"])) {
|
} elseif (isset($_GET["processlist"])) {
|
||||||
include "./processlist.inc.php";
|
include "./processlist.inc.php";
|
||||||
|
} elseif (isset($_GET["replication"])) {
|
||||||
|
include "./replication.inc.php";
|
||||||
} elseif (isset($_GET["select"])) {
|
} elseif (isset($_GET["select"])) {
|
||||||
include "./select.inc.php";
|
include "./select.inc.php";
|
||||||
} elseif (isset($_GET["variables"])) {
|
} elseif (isset($_GET["variables"])) {
|
||||||
|
|
|
@ -45,6 +45,10 @@ $translations = array(
|
||||||
'Variables' => 'Xx',
|
'Variables' => 'Xx',
|
||||||
'Status' => 'Xx',
|
'Status' => 'Xx',
|
||||||
|
|
||||||
|
'Replication' => 'Xx',
|
||||||
|
'Master status' => 'Xx',
|
||||||
|
'Slave status' => 'Xx',
|
||||||
|
|
||||||
'SQL command' => 'Xx',
|
'SQL command' => 'Xx',
|
||||||
'%d query(s) executed OK.' => array('Xx.', 'Xx.'),
|
'%d query(s) executed OK.' => array('Xx.', 'Xx.'),
|
||||||
'Query executed OK, %d row(s) affected.' => array('Xx.', 'Xx.'),
|
'Query executed OK, %d row(s) affected.' => array('Xx.', 'Xx.'),
|
||||||
|
|
26
adminer/replication.inc.php
Normal file
26
adminer/replication.inc.php
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
page_header(lang('Replication'));
|
||||||
|
|
||||||
|
echo "<p><b>" . lang('Master status') . "</b>" . doc_link(array("sql" => "show-master-status.html")) . "\n";
|
||||||
|
$master_replication_status = replication_status("MASTER");
|
||||||
|
echo "<table cellspacing='0'>\n";
|
||||||
|
foreach ($master_replication_status[0] as $key => $val) {
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<th>" . h($key);
|
||||||
|
echo "<td>" . nbsp($val);
|
||||||
|
}
|
||||||
|
echo "</table>\n";
|
||||||
|
|
||||||
|
$slave_replication_status = replication_status("SLAVE");
|
||||||
|
if (!empty($slave_replication_status)) {
|
||||||
|
echo "<p><b>" . lang('Slave status') . "</b>" . doc_link(array("sql" => "show-slave-status.html")) . "\n";
|
||||||
|
foreach ($slave_replication_status as $slave) {
|
||||||
|
echo "<table cellspacing='0'>\n";
|
||||||
|
foreach ($slave as $key => $val) {
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<th>" . h($key);
|
||||||
|
echo "<td>" . nbsp($val);
|
||||||
|
}
|
||||||
|
echo "</table>\n";
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ Adminer 4.2.6-dev:
|
||||||
Add accessibility labels
|
Add accessibility labels
|
||||||
Make maxlength in edit fields a soft limit
|
Make maxlength in edit fields a soft limit
|
||||||
Add Cache-Control: immutable to static files
|
Add Cache-Control: immutable to static files
|
||||||
|
MySQL: Add dedicated view for replication status
|
||||||
PostgreSQL: Export
|
PostgreSQL: Export
|
||||||
PostgreSQL: Don't treat partial indexes as unique
|
PostgreSQL: Don't treat partial indexes as unique
|
||||||
MS SQL: Support pdo_dblib
|
MS SQL: Support pdo_dblib
|
||||||
|
|
|
@ -343,7 +343,7 @@ foreach (glob(dirname(__FILE__) . "/adminer/drivers/" . ($driver ? $driver : "*"
|
||||||
|
|
||||||
include dirname(__FILE__) . "/adminer/include/pdo.inc.php";
|
include dirname(__FILE__) . "/adminer/include/pdo.inc.php";
|
||||||
include dirname(__FILE__) . "/adminer/include/driver.inc.php";
|
include dirname(__FILE__) . "/adminer/include/driver.inc.php";
|
||||||
$features = array("call" => "routine", "dump", "event", "privileges", "procedure" => "routine", "processlist", "routine", "scheme", "sequence", "status", "trigger", "type", "user" => "privileges", "variables", "view");
|
$features = array("call" => "routine", "dump", "event", "privileges", "procedure" => "routine", "processlist", "routine", "scheme", "sequence", "status", "trigger", "type", "user" => "privileges", "replication", "variables", "view");
|
||||||
$lang_ids = array(); // global variable simplifies usage in a callback function
|
$lang_ids = array(); // global variable simplifies usage in a callback function
|
||||||
$file = file_get_contents(dirname(__FILE__) . "/$project/index.php");
|
$file = file_get_contents(dirname(__FILE__) . "/$project/index.php");
|
||||||
if ($driver) {
|
if ($driver) {
|
||||||
|
|
Loading…
Reference in a new issue