Linux中Mysql的叢集搭建

1小登1發表於2024-06-26

1.前提要求:需要建立多個Mysql例項(可以在一個虛擬機器建立Mysql透過快照的方式建立多個虛擬機器)

2.配置主機

1.選擇一個mysql作為主機,並且配置/etc/my.cnf檔案

vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
log_bin
binlog-do-db=qj #要同步的資料庫名
binlog-ignore-db=mysql#一定不要複製的資料庫名
server-id=120#值要唯一,通常使用虛擬機器ip地址的最後一段

2.重啟mysql

systemctl restart mysql

如果上述的重啟命令不能用可以使用下面的

systemctl restart mysqld

3.登入MySQL並檢視狀態

show master status;

這裡先記下File,Position兩個欄位

3.配置從機

1.編輯從機的/etc/my.cnf檔案

vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
server-id=121#唯一值

2.刪除auto.cnf檔案

rm -f /data/mysql/auto.cnf

3.重啟mysql

systemctl restart mysql

如果上述重啟方法不行,可以使用以下方法

systemctl restart mysqld

4.登入從機進行配置

#1.停掉slave
mysql> stop slave;
#2.配置主機資訊:
#change master to master_host='主機ip地址',master_user='主機使用者 
#名',master_password='主機
#密碼',master_log_file='主機日誌檔名',master_log_pos=日誌檔案的位置;
mysql>change master to
master_host='192.168.211.120',master_user='root',master_password='123456',master_log_file
='localhost-bin.000001',#上述記下來的file
master_log_pos=154;#上述記下來的position
#3.啟動slave
mysql>start slave;
#4.檢視從機狀態
mysql>show slave status \G;

重要:需要看到從機狀態中的Slave_IO_Running和Slave_SQL_Running都為Yes

相關文章