⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.78
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
local
/
psa
/
phpMyAdmin
/
libraries
/
classes
/
View File Name :
ReplicationInfo.php
dbi = $dbi; } public function load(?string $connection = null): void { global $urlParams; $this->setPrimaryStatus(); if (! empty($connection)) { $this->setMultiPrimaryStatus(); if ($this->multiPrimaryStatus) { $this->setDefaultPrimaryConnection($connection); $urlParams['primary_connection'] = $connection; } } $this->setReplicaStatus(); $this->setPrimaryInfo(); $this->setReplicaInfo(); } private function setPrimaryStatus(): void { $this->primaryStatus = $this->dbi->fetchResult(Compatibility::getShowBinLogStatusStmt($this->dbi)); } public function getPrimaryStatus(): array { return $this->primaryStatus; } private function setReplicaStatus(): void { if ( $this->dbi->isMySql() && $this->dbi->getVersion() >= 80022 || $this->dbi->isMariaDB() && $this->dbi->getVersion() >= 100501 ) { $this->replicaStatus = $this->dbi->fetchResult('SHOW REPLICA STATUS'); } else { $this->replicaStatus = $this->dbi->fetchResult('SHOW SLAVE STATUS'); } } public function getReplicaStatus(): array { return $this->replicaStatus; } private function setMultiPrimaryStatus(): void { $this->multiPrimaryStatus = []; if ($this->dbi->isMariaDB() && $this->dbi->getVersion() >= 100501) { $this->multiPrimaryStatus = $this->dbi->fetchResult('SHOW ALL REPLICAS STATUS'); } elseif ($this->dbi->isMariaDB()) { $this->multiPrimaryStatus = $this->dbi->fetchResult('SHOW ALL SLAVES STATUS'); } } private function setDefaultPrimaryConnection(string $connection): void { $this->dbi->query(sprintf('SET @@default_master_connection = \'%s\'', $this->dbi->escapeString($connection))); } private static function fill(array $status, string $key): array { if (empty($status[0][$key])) { return []; } return explode(',', $status[0][$key]); } private function setPrimaryInfo(): void { $this->primaryInfo = ['status' => false]; if (count($this->primaryStatus) > 0) { $this->primaryInfo['status'] = true; } if (! $this->primaryInfo['status']) { return; } $this->primaryInfo['Do_DB'] = self::fill($this->primaryStatus, 'Binlog_Do_DB'); $this->primaryInfo['Ignore_DB'] = self::fill($this->primaryStatus, 'Binlog_Ignore_DB'); } /** * @return array */ public function getPrimaryInfo(): array { return $this->primaryInfo; } private function setReplicaInfo(): void { $this->replicaInfo = ['status' => false]; if (count($this->replicaStatus) > 0) { $this->replicaInfo['status'] = true; } if (! $this->replicaInfo['status']) { return; } $this->replicaInfo['Do_DB'] = self::fill($this->replicaStatus, 'Replicate_Do_DB'); $this->replicaInfo['Ignore_DB'] = self::fill($this->replicaStatus, 'Replicate_Ignore_DB'); $this->replicaInfo['Do_Table'] = self::fill($this->replicaStatus, 'Replicate_Do_Table'); $this->replicaInfo['Ignore_Table'] = self::fill($this->replicaStatus, 'Replicate_Ignore_Table'); $this->replicaInfo['Wild_Do_Table'] = self::fill($this->replicaStatus, 'Replicate_Wild_Do_Table'); $this->replicaInfo['Wild_Ignore_Table'] = self::fill($this->replicaStatus, 'Replicate_Wild_Ignore_Table'); } /** * @return array */ public function getReplicaInfo(): array { return $this->replicaInfo; } }