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