V procesu replikace MySQL jsou data jednoho serveru automaticky zkopírována na jiný záložní server v reálném čase. Replikace databáze poskytuje odolnost proti chybám a redundanci. Pokud selže hlavní server, vaše data budou obnovena z jiného serveru.
Následují kroky pro konfiguraci replikace MySQL master-slave na RHEL 7. K tomu potřebujeme 2 servery s různými IP adresami.
- Stáhněte a nainstalujte server MySQL na oba servery pomocí příkazu Yum.
# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm # sudo yum install mysql-server - Jakmile je MySQL Server nainstalován, spusťte jej a povolte jeho spuštění při spouštění.
sudo systemctl enable mysqld
sudo systemctl start mysqld - Zjistěte dočasné heslo serveru mysql pomocí níže uvedeného příkazu.
# sudo grep 'temporary password' /var/log/mysqld.log
- Spusťte níže uvedený příkaz pro posílení nebo zabezpečení databáze MySQL.
# sudo mysql_secure_installation
- Zadejte dočasné heslo, které jsme právě získali v kroku (3), a změňte výchozí heslo.
- Chcete-li zajistit nejlepší zabezpečení, stiskněte y pro všechny odpovědi.
Krok 1 :Konfigurace hlavního serveru
- Otevřete konfigurační soubor MySQL pomocí svého oblíbeného editoru.
# sudo vim /etc/my.cnf
- Přidejte pod řádek v sekci mysqld.
# bind-address = Your Master server IP Address
server-id = 1
log_bin =mysql-bin - Restartujte službu mysql.
# sudo systemctl restart mysqld
- Chcete-li vytvořit uživatele replikace, přihlaste se k serveru mysql pomocí root a zadejte heslo.
# sudo mysql -u root -p
- Vytvoříme uživatele repliky pomocí níže uvedeného příkazu a udělíme uživateli přístup podřízeného zařízení. Ujistěte se, že používáte IP adresu svého serveru.
mysql> CREATE USER 'replica'@'173.248.174.102' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.248.174.102'; - Kliknutím na níže uvedený příkaz získáte binární název souboru a pozici.
mysql> SHOW MASTER STATUS\G
- Budeme si muset poznamenat hlavní název souboru mysql-bin.000034 a jeho pozici 154.
Krok 2:Konfigurace podřízeného serveru:
- Otevřete konfigurační soubor MySQL pomocí svého oblíbeného editoru.
sudo vim /etc/my.cnf
- Přidejte pod řádek v sekci mysqld.
bind-address = Your Slave server IP Address
server-id = 2
log_bin =mysql-bin - Restartujte službu mysql.
sudo systemctl restart mysqld
- Nechte nás nakonfigurovat podřízený server pro replikaci z hlavního serveru. Přihlaste se k serveru MySQL.
sudo mysql -u root -p
mysql> STOP SLAVE; - Spustíme níže uvedený dotaz pro konfiguraci podřízeného serveru pro replikaci hlavního serveru.
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.248.174.101',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='[email protected]',
-> MASTER_LOG_FILE='mysql-bin.000034',
-> MASTER_LOG_POS=154;
- Spusťte podřízený server.
mysql> START SLAVE;
Krok 3:Otestujte replikaci MySQL Master-Slave:
Máme hotovou konfiguraci hlavního a podřízeného serveru. Nyní otestujeme replikaci na obou serverech.
- Přejděte na hlavní server a stiskněte níže uvedený příkaz.
sudo mysql -u root -p
- Vytvořte testovací databázi.
mysql> CREATE DATABASE replica_database;
- Přejděte na Slave Server a přihlaste se k databázovému serveru MySQL.
sudo mysql -u root -p
- Vypište databázi pomocí níže uvedeného příkazu.
mysql> SHOW DATABASES;
Pokud je veškerá konfigurace správná, uvidíte databázi vytvořenou v masteru. To je ono. Naše replikace MySQL master/slave funguje dobře.
Jak bezpečně změnit umístění adresáře dat MySQL/MariaDB na serverech cPanel/WHM?
Jak nastavit NTP server v CentOS?