⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.103
Server IP:
45.79.8.107
Server:
Linux localhost 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.2-1ubuntu2.22
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
phpmyadmin
/
libraries
/
classes
/
View File Name :
ReplicationInfo.php
dbi = $dbi; } public function load(?string $connection = null): void { global $url_params; $this->setPrimaryStatus(); if (! empty($connection)) { $this->setMultiPrimaryStatus(); if ($this->multiPrimaryStatus) { $this->setDefaultPrimaryConnection($connection); $url_params['master_connection'] = $connection; } } $this->setReplicaStatus(); $this->setPrimaryInfo(); $this->setReplicaInfo(); } private function setPrimaryStatus(): void { $this->primaryStatus = $this->dbi->fetchResult('SHOW MASTER STATUS'); } /** * @return array */ public function getPrimaryStatus() { return $this->primaryStatus; } private function setReplicaStatus(): void { $this->replicaStatus = $this->dbi->fetchResult('SHOW SLAVE STATUS'); } /** * @return array */ public function getReplicaStatus() { return $this->replicaStatus; } private function setMultiPrimaryStatus(): void { $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; } }