ວິທີການຕິດຕັ້ງ Replication MySQL Master-Slave ໃນ Ubuntu 18.04
ການລອກແບບຕົ້ນສະບັບຂອງ MySQL ແມ່ນຂັ້ນຕອນທີ່ອະນຸຍາດໃຫ້ເຮັດແຟ້ມຖານຂໍ້ມູນຫຼືເຮັດ ສຳ ເນົາຜ່ານຂໍ້ ໜຶ່ງ ຫຼືຫຼາຍຂໍ້ໃນເຄືອຂ່າຍ. ການຕັ້ງຄ່ານີ້ໃຫ້ຄວາມສັບສົນແລະຄວາມທົນທານຕໍ່ຄວາມຜິດເຊັ່ນວ່າໃນກໍລະນີຂອງຄວາມລົ້ມເຫລວໃນ Master node, ຖານຂໍ້ມູນຍັງສາມາດຊອກຫາໄດ້ໃນ Slave node. ສິ່ງນີ້ເຮັດໃຫ້ຜູ້ຊົມໃຊ້ມີຄວາມສະຫງົບສຸກວ່າທຸກສິ່ງຈະບໍ່ສູນເສຍໄປໃນທີ່ສຸດເນື່ອງຈາກວ່າການ ຈຳ ລອງຂອງຖານຂໍ້ມູນຍັງສາມາດເອົາມາຈາກເຄື່ອງແມ່ຂ່າຍອື່ນ.
ໃນຄູ່ມືນີ້, ທ່ານຈະໄດ້ຮຽນຮູ້ວິທີການເຮັດການລອກແບບ Master-qhev ຂອງ MySQL ໃນ MySQL ໃນລະບົບ Ubuntu 18.04.
ໃນການຕັ້ງຄ່າ, ພວກເຮົາຈະມີສອງ server ທີ່ໃຊ້ງານ Ubuntu 18.04 ພ້ອມກັບທີ່ຢູ່ IP ຕໍ່ໄປນີ້.
Master server: 10.128.0.28 Slave server: 10.128.0.29
ຕອນນີ້ເຂົ້າໄປເບິ່ງແລະເບິ່ງວ່າພວກເຮົາສາມາດຕັ້ງຄ່າການຕັ້ງຄ່າການເຮັດແບບ ຈຳ ລອງແບບ Master-ລອງໃນ Ubuntu ໄດ້ແນວໃດ.
ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງ MySQL ໃນ Master ແລະ Slave Nodes
ຫໍໄຕອູບັນຕູມີ MySQL ຮຸ່ນ 5.7. ເພື່ອໃຊ້ປະໂຫຍດຈາກຄຸນລັກສະນະ ໃໝ່ ແລະຫລີກລ້ຽງບັນຫາທີ່ອາດເກີດຂື້ນ, ທ່ານຄວນຕິດຕັ້ງ MySQL ລຸ້ນລ້າສຸດ. ແຕ່ກ່ອນອື່ນ ໝົດ, ໃຫ້ອັບເດດສອງຂໍ້ນີ້ໂດຍໃຊ້ ຄຳ ສັ່ງທີ່ ເໝາະ ສົມຕໍ່ໄປນີ້.
$ sudo apt update
ການຕິດຕັ້ງ MySQL ໃນທັງສອງຂໍ້, ປະຕິບັດ ຄຳ ສັ່ງ.
$ sudo apt install mysql-server mysql-client
ຕໍ່ໄປ, ເປີດເອກະສານການຕັ້ງຄ່າ mysql.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
ຢູ່ເທິງຂໍ້ແມ່ບົດ, ເລື່ອນລົງແລະຊອກຫາຄຸນລັກສະນະ bind-address
ທີ່ຢູ່ຂ້າງລຸ່ມນີ້.
bind-address =127.0.0.1
ປ່ຽນທີ່ຢູ່ loopback ໃຫ້ກົງກັບທີ່ຢູ່ IP ຂອງ Master node.
bind-address =10.128.0.28
ຕໍ່ໄປ, ລະບຸຄຸນຄ່າ ສຳ ລັບຄຸນລັກສະນະ server-id
ໃນສ່ວນ [mysqld]
. ໝາຍ ເລກທີ່ທ່ານເລືອກບໍ່ຄວນກົງກັບເລກລະຫັດຂອງເຄື່ອງແມ່ຂ່າຍອື່ນ. ໃຫ້ ກຳ ນົດຄ່າ 1
.
server-id =1
ໃນຕອນທ້າຍຂອງເອກະສານການຕັ້ງຄ່າ, ຄັດລອກແລະວາງສາຍຂ້າງລຸ່ມ.
log_bin = /var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index
ອອກຈາກແຟ້ມການຕັ້ງຄ່າແລະເລີ່ມການບໍລິການ MySQL ສຳ ລັບການປ່ຽນແປງທີ່ມີຜົນຕໍ່ Master node.
$ sudo systemctl restart mysql
ເພື່ອກວດສອບວ່າເຊີບເວີ MySQL ກຳ ລັງເຮັດວຽກຕາມທີ່ຄາດໄວ້, ອອກ ຄຳ ສັ່ງ.
$ sudo systemctl status mysql
ເລີດ! ເຊີຟເວີ MySQL ກຳ ລັງເຮັດວຽກຕາມທີ່ຄາດໄວ້!
ຂັ້ນຕອນທີ 2: ສ້າງຜູ້ໃຊ້ ໃໝ່ ສຳ ລັບການ ຈຳ ລອງກ່ຽວກັບ Master Node
ໃນສ່ວນນີ້, ພວກເຮົາ ກຳ ລັງຈະສ້າງຜູ້ໃຊ້ແບບ ຈຳ ລອງໃນ node master. ເພື່ອບັນລຸສິ່ງນີ້, ເຂົ້າສູ່ລະບົບ MySQL server ດັ່ງທີ່ສະແດງໄວ້.
$ sudo mysql -u root -p
ຕໍ່ໄປ, ດຳ ເນີນການແລະ ດຳ ເນີນການສອບຖາມຂ້າງລຸ່ມນີ້ເພື່ອສ້າງຜູ້ ນຳ ໃຊ້ແບບ ຈຳ ລອງແລະອະນຸຍາດໃຫ້ເຂົ້າໃຊ້ ສຳ ລອງ ສຳ ລອງ. ຢ່າລືມທີ່ຈະໃຊ້ທີ່ຢູ່ IP ຂອງທ່ານ.
mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';
ຕໍ່ໄປ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
mysql> SHOW MASTER STATUS\G
ຜົນໄດ້ຮັບຄວນຈະຄ້າຍຄືກັບສິ່ງທີ່ທ່ານສາມາດເບິ່ງຂ້າງລຸ່ມນີ້.
ກະຕືລືລົ້ນແລະສັງເກດຄ່າ mysql-bin.000002
ແລະລະຫັດ ຕຳ ແໜ່ງ ທີ່ຢູ່ 1643
. ຄຸນຄ່າເຫຼົ່ານີ້ຈະມີຄວາມ ສຳ ຄັນຫຼາຍເມື່ອຕັ້ງຄ່າ server server.
ຂັ້ນຕອນທີ 3: ຕັ້ງຄ່າ MySQL Slave Server
ມຸ່ງ ໜ້າ ສູ່ server server ແລະຄືກັບທີ່ພວກເຮົາໄດ້ເຮັດກັບ server server, ເປີດເອກະສານຕັ້ງຄ່າ MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
ຄືກັນກັບ server server, ດຳ ເນີນການແກ້ໄຂເສັ້ນຕໍ່ໄປນີ້.
bind-address = 10.128.0.29
ຄືກັນກັບກ່ອນ ໜ້າ ນີ້, ໃຫ້ລະບຸຄຸນຄ່າ ສຳ ລັບຄຸນລັກສະນະ server-id
ໃນສ່ວນ [mysqld]
. ເວລານີ້ເລືອກຄ່າອື່ນ. ໄປກັບ 2
.
server-id =2
ອີກເທື່ອຫນຶ່ງ, ວາງສາຍຂ້າງລຸ່ມນີ້ຢູ່ໃນຕອນທ້າຍຂອງເອກະສານການຕັ້ງຄ່າ.
log_bin = /var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index
ຕໍ່ໄປເລີ່ມຕົ້ນ MySQL server ໃນ server node.
$ sudo systemctl restart mysql
ເມື່ອເຮັດແລ້ວ, ບັນທຶກແລະອອກຈາກບັນນາທິການຕົວ ໜັງ ສື
ຕໍ່ໄປ, ເຂົ້າສູ່ລະບົບ MySQL shell ດັ່ງທີ່ສະແດງ.
$ sudo mysql -u root -p
ໃນຂັ້ນຕອນນີ້, ທ່ານຈະຕ້ອງເຮັດການຕັ້ງຄ່າບາງຢ່າງເຊິ່ງຈະຊ່ວຍໃຫ້ເຄື່ອງແມ່ຂ່າຍຂອງທາດເຊື່ອມຕໍ່ກັບ server server. ແຕ່ ທຳ ອິດ, ຢຸດກະທູ້ຂອງທາດຕາມທີ່ສະແດງ.
mysql> STOP SLAVE;
ເພື່ອອະນຸຍາດໃຫ້ server server ເຮັດແບບ ໃໝ່ server, ດຳ ເນີນການ ຄຳ ສັ່ງ.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email ', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
ຖ້າທ່ານມີຄວາມກະຕືລືລົ້ນພໍ, ທ່ານຈະສັງເກດເຫັນວ່າພວກເຮົາໄດ້ໃຊ້ລະຫັດມູນຄ່າແລະ ຕຳ ແໜ່ງ ທີ່ຢູ່ 1643
ທີ່ຖືກສະແດງກ່ອນ ໜ້າ ນີ້ຫຼັງຈາກສ້າງຜູ້ໃຊ້ ສຳ ລອງແບບທົດລອງ.
ນອກຈາກນັ້ນ, ທີ່ຢູ່ IP ຂອງ Master server, ຜູ້ໃຊ້ແບບທົດແທນແລະລະຫັດຜ່ານໄດ້ຖືກ ນຳ ໃຊ້ແລ້ວ.
ຕໍ່ມາ, ເລີ່ມຕົ້ນກະທູ້ທີ່ທ່ານຢຸດກ່ອນ ໜ້າ ນີ້.
mysql> START SLAVE;
ຂັ້ນຕອນທີ 4: ກວດສອບການ ຈຳ ລອງແບບ MySQL Master-Slave
ເພື່ອກວດເບິ່ງວ່າການຕັ້ງຄ່ານັ້ນເຮັດວຽກໄດ້ຕາມຄວາມຄາດຫວັງຫລືບໍ່, ພວກເຮົາ ກຳ ລັງຈະສ້າງຖານຂໍ້ມູນ ໃໝ່ ໃນຕົ້ນສະບັບແລະກວດເບິ່ງວ່າມັນໄດ້ຖືກ ຈຳ ໜ່າຍ ຢູ່ໃນ MySQL Slave server ຫຼືບໍ່.
ເຂົ້າໄປໃນ MySQL ໃນ server server.
$ sudo mysql -u root -p
ໃຫ້ສ້າງຖານຂໍ້ມູນການທົດສອບ. ໃນກໍລະນີນີ້, ພວກເຮົາຈະສ້າງຖານຂໍ້ມູນທີ່ມີຊື່ວ່າ replication_db.
mysql> CREATE DATABASE replication_db;
ຕອນນີ້, ເຂົ້າສູ່ລະບົບ MySQL ຂອງທ່ານໃນ server server.
$ sudo mysql -u root -p
ດຽວນີ້ໃຫ້ຂຽນຖານຂໍ້ມູນໂດຍໃຊ້ແບບສອບຖາມ.
mysql> SHOW DATABASES;
ທ່ານຈະສັງເກດເຫັນຖານຂໍ້ມູນທີ່ທ່ານສ້າງຂື້ນເທິງແມ່ບົດໄດ້ຖືກ ນຳ ໃຊ້ເປັນຂ້າທາດ. ຫນ້າຫວາດສຽວ! ການ ຈຳ ລອງແບບ MySQL Master-qhev ຂອງທ່ານ ກຳ ລັງເຮັດວຽກຕາມຄາດ ໝາຍ! ດຽວນີ້ທ່ານສາມາດ ໝັ້ນ ໃຈໄດ້ວ່າໃນກໍລະນີທີ່ລົ້ມເຫລວ, ສຳ ເນົາເອກະສານຖານຂໍ້ມູນຈະຖືກ ນຳ ໄປໃຊ້ໃນເຄື່ອງແມ່ຂ່າຍຂອງທາດ.
ໃນຄູ່ມືນີ້, ທ່ານໄດ້ຮຽນຮູ້ວິທີການຕັ້ງຄ່າການ ຈຳ ລອງການ ນຳ ໃຊ້ MySQL Master-qhev ໃນ Ubuntu 18.04.