Android

Jak nakonfigurovat master mysql

Python on Azure: Part 2—Deploying Django services to Azure Web Apps | Azure Friday

Python on Azure: Part 2—Deploying Django services to Azure Web Apps | Azure Friday

Obsah:

Anonim

MySQL replikace je proces, který vám umožní automaticky kopírovat data z jednoho databázového serveru na jeden nebo více serverů.

MySQL podporuje řadu replikačních topologií, přičemž topologie Master / Slave je jednou z nejznámějších topologií, v nichž jeden databázový server funguje jako master, zatímco jeden nebo více serverů funguje jako slave. Ve výchozím nastavení je replikace asynchronní, kde hlavní server odešle události, které popisují modifikace databáze do jeho binárního protokolu, a slave si je vyžádají, když jsou připraveny.

V tomto tutoriálu vysvětlíme, jak nastavit replikaci MySQL Master / Slave s jedním masterem a jedním slave serverem na CentOS 7. Stejné kroky platí pro MariaDB.

Tento typ topologie replikace je nejvhodnější pro nasazení replik čtení pro škálování čtení, zálohování živých databází pro zotavení po katastrofě a pro analytické úlohy.

Předpoklady

V tomto příkladu předpokládáme, že máte dva servery se systémem CentOS 7, které spolu mohou komunikovat prostřednictvím soukromé sítě. Pokud váš poskytovatel hostingu neposkytuje soukromé adresy IP, můžete použít veřejné adresy IP a nakonfigurovat bránu firewall tak, aby umožňovala provoz na portu 3306 pouze z důvěryhodných zdrojů.

Servery v tomto příkladu mají následující adresy IP:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

Nainstalujte MySQL

Výchozí úložiště CentOS 7 neobsahuje balíčky MySQL, takže MySQL nainstalujeme z jejich oficiálního úložiště Yum. Abychom předešli problémům, na oba servery nainstalujeme stejnou MySQL verze 5.7.

Nainstalujte MySQL na servery Master i Slave:

sudo yum localinstall sudo yum install mysql-community-server

Po dokončení instalace spusťte službu MySQL a umožněte jí, aby se automaticky spouštěl při spuštění pomocí:

sudo systemctl enable mysqld sudo systemctl start mysqld

Při prvním spuštění serveru MySQL se pro uživatele root root vygeneruje dočasné heslo. Chcete-li najít heslo, použijte následující příkaz grep:

sudo grep 'temporary password' /var/log/mysqld.log

Spusťte příkaz mysql_secure_installation a nastavte nové heslo root a zvyšte zabezpečení instance MySQL:

mysql_secure_installation

Zadejte dočasné root heslo a odpovězte Y (ano) na všechny otázky.

Nové heslo musí být dlouhé nejméně 8 znaků a musí obsahovat alespoň jedno velké písmeno, jedno malé písmeno, jedno číslo a jeden zvláštní znak.

Nakonfigurujte hlavní server

Nejprve nakonfigurujeme hlavní server MySQL a provedeme následující změny:

  • Nastavte server MySQL tak, aby poslouchal na soukromé IP. Nastavte jedinečné ID serveru. Povolte binární protokolování.

Otevřete konfigurační soubor MySQL a do řádku přidejte následující řádky sekce:

sudo nano /etc/my.cnf master: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

Po dokončení restartujte službu MySQL, aby se změny projevily

sudo systemctl restart mysqld

Dalším krokem je vytvoření nového uživatele replikace. Přihlaste se k serveru MySQL jako uživatel root:

mysql -uroot -p

Z vnitřku řádku MySQL spusťte následující dotazy SQL, které vytvoří uživatele replica a udělí uživateli oprávnění REPLICATION SLAVE :

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Ujistěte se, že změníte IP svou podřízenou IP adresou. Můžete uživatele pojmenovat, jak chcete.

Zatímco jste stále v řádku MySQL, spusťte následující příkaz, který vytiskne binární název souboru a pozici.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Poznamenejte si název souboru 'mysql-bin.000001' a pozici '1427'. Tyto hodnoty budete potřebovat při konfiguraci podřízeného serveru. Tyto hodnoty se pravděpodobně budou na vašem serveru lišit.

Nakonfigurujte server Slave

Stejně jako u výše uvedeného hlavního serveru provedeme na podřízeném serveru následující změny:

  • Nastavte server MySQL tak, aby na soukromé IPSet poslouchal jedinečný server IDEnable binární protokolování

Otevřete konfigurační soubor MySQL a upravte následující řádky:

sudo nano /etc/my.cnf slave: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

Restartujte službu MySQL:

sudo systemctl restart mysqld

Dalším krokem je konfigurace parametrů, které podřízený server použije pro připojení k hlavnímu serveru. Přihlásit se do prostředí MySQL:

mysql -uroot -p

Nejprve zastavte podprocesová vlákna:

STOP SLAVE;

Spusťte následující dotaz, který nastaví slave pro replikaci masteru:

CHANGE MASTER TO MASTER_HOST='192.168.121.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

Ujistěte se, že používáte správnou IP adresu, uživatelské jméno a heslo. Název a umístění souboru protokolu musí být stejné jako hodnoty získané z hlavního serveru.

Po dokončení spusťte podprocesová vlákna.

START SLAVE;

Vyzkoušejte konfiguraci

V tomto okamžiku byste měli mít funkční nastavení replikace Master / Slave.

Abychom ověřili, že vše funguje podle očekávání, vytvoříme novou databázi na hlavním serveru:

mysql -uroot -p

CREATE DATABASE replicatest;

Přihlásit se do shellu MySQL:

mysql -uroot -p

Spusťte následující příkaz a seznam všech databází:

SHOW DATABASES;

Všimněte si, že databáze, kterou jste vytvořili na hlavním serveru, je replikována na slave:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Závěr

V tomto tutoriálu jsme vám ukázali, že na CentOS 7 vytvoříte replikaci MySQL Master / Slave.

Pokud máte nějaké dotazy, neváhejte a zanechte komentář.

centos mysql mariadb