LNMP 分散式叢集(三):MySQL主從資料庫伺服器的搭建

dfface發表於2020-03-18

前言

LNMP 分散式叢集的部署實踐 系列文章:

回顧一下基本的架構:

架構(序號代表IP地址:192.168.177.1X)

這一篇我們部署7、8號機,MySQL資料庫伺服器。

配置

原始碼編譯安裝MySQL(7號機)

使用的mysql版本是 Generic Linux (Architecture Independent), Compressed TAR Archive(mysql-5.5.61.tar.gz) 。

# 安裝依賴
yum -y install gcc-c++ cmake ncurses-devel
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.61.tar.gz
tar -zxf mysql-5.5.61.tar.gz
cd mysql-5.5.61
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install && cd ..
複製程式碼

配置 MySQL(7號機)

# 配置資料儲存目錄和sock檔案儲存目錄
vi /etc/my.cnf
datadir=/data/mysql
socket=/tmp/mysql.sock

# 必須給目錄賦予許可權
chown -R mysql:mysql /data/mysql

# 建立mysql使用者
useradd -s /sbin/nologin -M mysql  # -m:自動建立使用者的登入目錄;-M:不要自動建立使用者的登入目錄;-s<shell>:指定使用者登入後所使用的shell;

# 初始化資料庫
cd /usr/local/mysql
./scripts/mysql_install_db

# 啟動MySQL並新增到服務
cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
service mysql start
# 開放3306埠
netstat -tnlp | grep mysql
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save  # 不能用的話要麼更新,要麼更改配置檔案,這在上一篇文章有講
# 配置MySQL中的使用者
cd /usr/local/mysql/bin
./mysql
UPDATE mysql.user SET password=password('123456') WHERE user='root';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
EXIT
複製程式碼

./scripts/mysql_install_db

實現 MySQL 主從複製

  1. 在 7 號機(主)中完成 mysql 的安裝之後,克隆出 8號機(從,注意網路IP的配置) 。

  2. 在7 號機(主)中開啟 bin 日誌(二進位制日誌,用於資料庫增量備份,資料庫之間複製等)。

vi /etc/my.cnf
[mysqld]
...
log-bin=mysqlbin-log  # 表示檔名為mysqlbin-log
server-id=17 # 表示伺服器的唯一ID,可用伺服器IP的最後一位

service mysql restart
cd /data/mysql
ll | grep mysqlbin # 當需要和其他伺服器資料同步時,會通過這些日誌讀取資料庫的更改記錄
複製程式碼
  1. 建立用於主從複製的使用者
/usr/local/mysql/bin/mysql -uroot -p123456
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.177.18' IDENTIFIED BY '123456';
SHOW MASTER STATUS;
EXIT;
複製程式碼

SHOW MASTER STATUS

  1. 配置從伺服器
vi /etc/my.cnf
server-id=18

service mysql restart

/usr/local/mysql/bin/mysql -uroot -p123456
CHANGE MASTER TO master_host='192.168.177.17', master_user='slave',
master_password='123456', master_log_file='mysqlbin-log.000001', master_log_pos=263;
START SLAVE;
SHOW SLAVE STATUS \G
複製程式碼

SHOW SLAVE STATUS \G

LNMP 分散式叢集的部署實踐 系列文章:


dfface 的版權宣告:所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明出處,嚴禁商業用途!

相關文章