Mysql主從配置,親手搭建,保證可用!

配置前準備
1、準備2個mysql環境
2、兩個mysql網絡互通

第一步
配置mysql配置文件【my.cnf】|【my.ini】
【master】配置如下

[mysqld]
server-id = 1        # 節點ID,確保唯一
log config
log-bin = mysql-bin     #開啓mysql的binlog日誌功能,binlog日誌位置
sync_binlog = 1         #控制數據庫的binlog刷到磁盤上去 , 0 不控制,性能最好,1每次事物提交都會刷到日誌文件中,性能最差,最安全
binlog_format = mixed   #binlog日誌格式,mysql默認採用statement,建議使用mixed
expire_logs_days = 7                           #binlog過期清理時間
max_binlog_size = 100m                    #binlog每個日誌文件大小
binlog_cache_size = 4m                        #binlog緩存大小

binlog-do-db=test1 #需要同步的數據庫
binlog-do-db=test2 #需要同步的數據庫

max_binlog_cache_size= 512m              #最大binlog緩存大
binlog-ignore-db=mysql #不生成日誌文件的數據庫,多個忽略數據庫可以用逗號拼接,或者 複製這句話,寫多行

auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳過從庫錯誤

【slave】

[mysqld]
server-id=2
log-bin=mysql-bin #如果從數據庫,不需要再往其他數據庫同步,可以註釋掉
relay-log=slave-relay-bin #必須開啓,從主數據庫同步的binlog會寫入到該目錄下
relay-log-index=slave-relay-bin
#如果主從數據庫名稱相同
replication-do-db=數據庫名
#如果主從數據庫名稱不同
replication-rewrite-db= 主數據庫名 -> 從數據庫名

第二步
重啓服務

service mysql restart

第三步
在主庫創建一個用於同步的用戶(當然也可以不創建,直接用已有的,不過爲了安全建議還是創建一個)

CREATE USER centos1 IDENTIFIED BY 'maluole';
grant replication SLAVE on *.* to 'mycentos1'@'192.168.2.88' identified by 'maluole';

mysql8.0後。授權可能會報錯。

#如果使用navicate創建用戶,需要修改加密方式
alter user centos1 identified with mysql_native_password by 'maluole'
#修改host改爲所有ip
update user set host='%' where user='centos1'
#授權不需要加密碼
grant replication SLAVE on *.* to 'centos1'@'%'

第四步
在主服務器上查看master信息,需要記住【file】和【position】

show master status;

第五步
登陸從服務器mysql,增加從節點需要同步的master信息,其中【master_log_file】和【master_log_pos】是從上一步獲取到的兩個字段信息。執行以下語句

change master to master_host='192.168.2.151',master_user='mycentos1',master_password='maluole',master_log_file='mysql_bin.000015',master_log_pos=413;

參數解釋: MASTER_HOST : 設置要連接的主服務器的ip地址 MASTER_USER : 設置要連接的主服務器的用戶名
MASTER_PASSWORD : 設置要連接的主服務器的密碼 MASTER_LOG_FILE :
設置要連接的主服務器的bin日誌的日誌名稱,即第3步得到的信息 MASTER_LOG_POS :
設置要連接的主服務器的bin日誌的記錄位置,即第3步得到的信息,(這裏注意,最後一項不需要加引號。否則配置失敗)

————————————————

注: master_host是主節點的ip地址,master_user
和master_password是前面步驟主服務器創建的用於連接主服務器的帳號和密碼,master_log_file和master_log_pos需要從master節點,進入Mysql數據庫後進行查詢

第六步
在從服務器上啓動主從

start slave;#啓動主從
stop slave;#暫停主從

注:如果啓動從節點失敗,需要執行重置。

stop slave;
reset slave;

第七步
該模式下,不會導致數據丟失和截斷,因爲該值只允許同類的小數據類型轉換爲大數據類型,其他模式的轉換都會發生1677錯誤。生產環境建議設置該值

set global slave_type_conversions ='ALL_NON_LOSSY';

第八步
查看主從同步狀態,沒有報錯啓動成功

show slave status \G;
OR
show slave status;

如下圖,均爲Yes表示成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章