aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Replication.php
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
commit5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch)
tree39a1a4629749056191c05dfd899f931701b7acf3 /srcs/phpmyadmin/libraries/classes/Replication.php
parent5afd237bbd22028b85532b8c0b3fcead49a00764 (diff)
downloadft_server-master.tar.gz
ft_server-master.tar.bz2
ft_server-master.zip
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Replication.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Replication.php190
1 files changed, 0 insertions, 190 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Replication.php b/srcs/phpmyadmin/libraries/classes/Replication.php
deleted file mode 100644
index 4fa68f2..0000000
--- a/srcs/phpmyadmin/libraries/classes/Replication.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/* vim: set expandtab sw=4 ts=4 sts=4: */
-/**
- * Replication helpers
- *
- * @package PhpMyAdmin
- */
-declare(strict_types=1);
-
-namespace PhpMyAdmin;
-
-/**
- * PhpMyAdmin\Replication class
- *
- * @package PhpMyAdmin
- */
-class Replication
-{
- /**
- * Fill global replication_info variable.
- *
- * @param string $type Type: master, slave
- * @param string $replicationInfoKey Key in replication_info variable
- * @param array $mysqlInfo MySQL data about replication
- * @param string $mysqlKey MySQL key
- *
- * @return array
- */
- public function fillInfo(
- $type,
- $replicationInfoKey,
- array $mysqlInfo,
- $mysqlKey
- ) {
- $GLOBALS['replication_info'][$type][$replicationInfoKey]
- = empty($mysqlInfo[$mysqlKey])
- ? []
- : explode(
- ",",
- $mysqlInfo[$mysqlKey]
- );
-
- return $GLOBALS['replication_info'][$type][$replicationInfoKey];
- }
-
- /**
- * Extracts database or table name from string
- *
- * @param string $string contains "dbname.tablename"
- * @param string $what what to extract (db|table)
- *
- * @return string the extracted part
- */
- public function extractDbOrTable($string, $what = 'db')
- {
- $list = explode(".", $string);
- if ('db' == $what) {
- return $list[0];
- } else {
- return $list[1];
- }
- }
-
- /**
- * Configures replication slave
- *
- * @param string $action possible values: START or STOP
- * @param string $control default: null,
- * possible values: SQL_THREAD or IO_THREAD or null.
- * If it is set to null, it controls both
- * SQL_THREAD and IO_THREAD
- * @param integer $link mysql link
- *
- * @return mixed output of DatabaseInterface::tryQuery
- */
- public function slaveControl($action, $control = null, $link = null)
- {
- /** @var DatabaseInterface $dbi */
- global $dbi;
-
- $action = mb_strtoupper($action);
- $control = mb_strtoupper($control);
-
- if ($action != "START" && $action != "STOP") {
- return -1;
- }
- if ($control != "SQL_THREAD" && $control != "IO_THREAD" && $control != null) {
- return -1;
- }
-
- return $dbi->tryQuery($action . " SLAVE " . $control . ";", $link);
- }
-
- /**
- * Changes master for replication slave
- *
- * @param string $user replication user on master
- * @param string $password password for the user
- * @param string $host master's hostname or IP
- * @param int $port port, where mysql is running
- * @param array $pos position of mysql replication,
- * array should contain fields File and Position
- * @param bool $stop shall we stop slave?
- * @param bool $start shall we start slave?
- * @param mixed $link mysql link
- *
- * @return string output of CHANGE MASTER mysql command
- */
- public function slaveChangeMaster(
- $user,
- $password,
- $host,
- $port,
- array $pos,
- $stop = true,
- $start = true,
- $link = null
- ) {
- if ($stop) {
- $this->slaveControl("STOP", null, $link);
- }
-
- $out = $GLOBALS['dbi']->tryQuery(
- 'CHANGE MASTER TO ' .
- 'MASTER_HOST=\'' . $host . '\',' .
- 'MASTER_PORT=' . ($port * 1) . ',' .
- 'MASTER_USER=\'' . $user . '\',' .
- 'MASTER_PASSWORD=\'' . $password . '\',' .
- 'MASTER_LOG_FILE=\'' . $pos["File"] . '\',' .
- 'MASTER_LOG_POS=' . $pos["Position"] . ';',
- $link
- );
-
- if ($start) {
- $this->slaveControl("START", null, $link);
- }
-
- return $out;
- }
-
- /**
- * This function provides connection to remote mysql server
- *
- * @param string $user mysql username
- * @param string $password password for the user
- * @param string $host mysql server's hostname or IP
- * @param int $port mysql remote port
- * @param string $socket path to unix socket
- *
- * @return mixed mysql link on success
- */
- public function connectToMaster(
- $user,
- $password,
- $host = null,
- $port = null,
- $socket = null
- ) {
- $server = [];
- $server['user'] = $user;
- $server['password'] = $password;
- $server["host"] = Core::sanitizeMySQLHost($host);
- $server["port"] = $port;
- $server["socket"] = $socket;
-
- // 5th parameter set to true means that it's an auxiliary connection
- // and we must not go back to login page if it fails
- return $GLOBALS['dbi']->connect(DatabaseInterface::CONNECT_AUXILIARY, $server);
- }
-
- /**
- * Fetches position and file of current binary log on master
- *
- * @param mixed $link mysql link
- *
- * @return array an array containing File and Position in MySQL replication
- * on master server, useful for slaveChangeMaster()
- */
- public function slaveBinLogMaster($link = null)
- {
- $data = $GLOBALS['dbi']->fetchResult('SHOW MASTER STATUS', null, null, $link);
- $output = [];
-
- if (! empty($data)) {
- $output["File"] = $data[0]["File"];
- $output["Position"] = $data[0]["Position"];
- }
- return $output;
- }
-}