dakata__92
Super Moderator
Здравейте колеги. Налага ми се в една система да направя аларма дали съществува синхронизация между 3 сървъра. По принцип бих използвам командата :
за всеки сървър, но на практика в сайта потребителя на базата няма права да чете от таблицата. Не ми се иска да вдигам на потребителя правата и въпроса ми е дали има и алтернативен начин да видя дали между трите сървъра съществува синхронизация?
Код:
SELECT * FROM performance_schema.replication_connection_status
за всеки сървър, но на практика в сайта потребителя на базата няма права да чете от таблицата. Не ми се иска да вдигам на потребителя правата и въпроса ми е дали има и алтернативен начин да видя дали между трите сървъра съществува синхронизация?
Код:
public function getMySqlSync()
{
$servers = $this->getServersSettings();
$countServers = count($servers);
$mysqlSync = [];
for ($i = 1; $i <= $countServers; $i++) {
if (isset($servers[$i])) {
$query = $this->mdb->query("SELECT * FROM performance_schema.replication_connection_status", $servers[$i]['ip']);
if ($query->num_rows > 0) {
while ($item = $query->fetch_object()) {
$mysqlSync[$i] = $item;
}
}
}
}
return $mysqlSync;
}