Linux下的MySQL從服務(wù)器(Slave),是指對(duì)主服務(wù)器(Master)進(jìn)行數(shù)據(jù)復(fù)制和同步的服務(wù)器。一個(gè)Master可以擁有多個(gè)Slave,Slave的主要作用是幫助Master完成數(shù)據(jù)的負(fù)載均衡和容災(zāi)備份。
在MySQL中設(shè)置Slave的過程,需要通過以下幾個(gè)步驟:
1. 配置Master服務(wù)器,確保Master開啟了binlog日志功能,記錄SQL更新操作。 2. 創(chuàng)建Slave服務(wù)器連接,配置Slave服務(wù)器連接Master,并開啟Slave跟隨Master主庫更新。 3. 啟動(dòng)Slave復(fù)制服務(wù),結(jié)合Master的指令記錄完成數(shù)據(jù)同步。
這是一個(gè)簡(jiǎn)單的例子,展示了如何設(shè)置MySQL Slave:
#配置Master服務(wù)器 [root@localhost ~]# vi /etc/my.cnf #在[mysqld]下添加binlog配置 [mysqld] log-bin=mysql-bin #開啟二進(jìn)制日志 binlog-format=ROW #記錄ROW級(jí)別的格式 server-id=1 #定義服務(wù)器ID #重啟MySQL服務(wù) [root@localhost ~]# /etc/init.d/mysqld restart #在Master服務(wù)器創(chuàng)建用于Slave的用戶,并賦予操作權(quán)限 [root@localhost ~]# mysql -u root -p mysql>grant replication slave on *.* to 'slaveuser'@'%' identified by 'slavepwd'; #獲取Master服務(wù)器狀態(tài),同時(shí)也將結(jié)果等待Slave的同步 mysql>show master status; ----------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +----------------+----------+--------------+------------------+-------------------+ | mysql-bin.00001| 154 | | | | +----------------+----------+--------------+------------------+-------------------+ #配置Slave服務(wù)器 [root@localhost ~]# vi /etc/my.cnf #在[mysqld]下添加slave相關(guān)配置 [mysqld] server-id=2 #定義服務(wù)器ID relay-log=mysql-relay-bin #定義中繼日志的位置和名稱 relay-log-index=mysql-relay-bin.index #定義中繼日志索引的位置和名稱 log-slave-updates=1 #寫入Slave更新日志 #重啟MySQL服務(wù) [root@localhost ~]# /etc/init.d/mysqld restart #啟動(dòng)Slave服務(wù)器復(fù)制服務(wù) mysql>change master to ->master_host='Master_Server_IP', #Master的IP地址 ->master_user='slaveuser', #用于Slave復(fù)制的用戶名 ->master_password='slavepwd', #用戶密碼 ->master_log_file='mysql-bin.00001', #Master的二進(jìn)制日志文件名 ->master_log_pos=154; #Master最后一個(gè)同步點(diǎn)的位置 #開啟Slave mysql>start slave; #查看Slave狀態(tài) mysql>show slave status\G;
這里需要注意,啟動(dòng)Slave復(fù)制服務(wù)之前,需要保證Slave服務(wù)器上的MySQL實(shí)例沒有任何數(shù)據(jù),否則可能會(huì)出現(xiàn)數(shù)據(jù)丟失的情況。另外,在啟動(dòng)Slave之后,需要及時(shí)地進(jìn)行Slave狀態(tài)的監(jiān)控,確保復(fù)制和同步正常進(jìn)行。