Centos7系統(tǒng)下Mysql主從同步配置方案
前言
最近在做項(xiàng)目高可用時(shí),需要使用數(shù)據(jù)同步。由于只有雙節(jié)點(diǎn),且采用主主同步可能存在循環(huán)同步的風(fēng)險(xiǎn),故綜合考慮采用Mysql主從同步(Master-Slave同步)。
可能沒(méi)有接觸過(guò)Mysql數(shù)據(jù)同步時(shí),可能會(huì)覺(jué)得數(shù)據(jù)同步很難,但你按照如下操作一遍之后,會(huì)發(fā)現(xiàn)原來(lái)同步如此簡(jiǎn)單,畢竟我們只需要會(huì)配置,會(huì)排查問(wèn)題,底層具體實(shí)現(xiàn)Mysql團(tuán)隊(duì)早幫忙實(shí)現(xiàn)了。
廢話不多說(shuō),直入話題:
(1)首先,保證有兩臺(tái)設(shè)備(主、從),分別在兩臺(tái)設(shè)備上安裝Mysql數(shù)據(jù)庫(kù)。安裝完成之后,
使用mysql -u[數(shù)據(jù)庫(kù)用戶名] -p[用戶密碼],若能夠登陸mysql則表示安裝成功。
(2)編輯mysql配置文件,路徑一般為/etc/mysql/mysql.conf.d/mysqld.cnf(用戶在安裝Mysql時(shí)指定的目錄,
如:/etc/my.conf等)。分別按要求在主、從mysql中的[mysqld]模塊下添加如下內(nèi)容:
[mysqld] default-storage-engine=innodb innodb_file_per_table=1 collation-server=uft8_general_ci init-connect='SET NAMES uft8' bind-address=0.0.0.0 log_bin=mysql-bin relay_log=mysql-relay-bin expire_logs_days=100 skip-slave-start=1 binlog_do_db=[需要同步的數(shù)據(jù)庫(kù)名稱] binlog-ignore-db=mysql,sys,information_schema,performance_schema server-id=[主填寫(xiě)1,從填寫(xiě)2] auto-increment-increment=2 auto-increment-offset=1 open_files_limit=65535 mac_connections=1000 slave-skip-errors=all
(3)shell連接主、從服務(wù)器,mysql -u[數(shù)據(jù)庫(kù)用戶名] -p[用戶密碼],分別登錄到主、從節(jié)點(diǎn)mysql,創(chuàng)建同步用戶repl,執(zhí)行如下命令:
grant all privileges on *.* to 'repl'@'%' identified by 'repl' with grant option;
然后exit退出Mysql操作頁(yè),重新啟動(dòng)Mysql服務(wù),命令如下:
systemctl restart mysql.service
然后進(jìn)入主節(jié)點(diǎn)Mysql,查看Mysql的File列和Positon列。執(zhí)行命令:show master status;
出現(xiàn)結(jié)果如下
(4)登錄到從服務(wù)器,mysql -u[數(shù)據(jù)庫(kù)用戶名] -p[用戶密碼]進(jìn)入Mysql,執(zhí)行:
stop slave; reset slave; change master to master_host='[主節(jié)點(diǎn)IP]',master_user='repl',master_password='repl',master_log_file='[mysql-bin.000001,參考(3)中的File列]',master_log_pos=[245,參考(3)中的Postion列]; exit;
執(zhí)行systemctl restart mysql.service
重啟Mysql服務(wù)。
(5)啟動(dòng)從服務(wù)器slave庫(kù),mysql -u[數(shù)據(jù)庫(kù)用戶名] -p[用戶密碼]進(jìn)入從節(jié)點(diǎn)Mysql,執(zhí)行如下命令:
start slave;
執(zhí)行:show slave status\G;
查看備份服務(wù)狀態(tài)。如果以下兩個(gè)狀態(tài)為Yes則表示主從同步成功。
接下來(lái),大家就可以嘗試向主數(shù)據(jù)庫(kù)中插入一條數(shù)據(jù),看是夠從數(shù)據(jù)庫(kù)中會(huì)自動(dòng)增加該條數(shù)據(jù),是不是有點(diǎn)小激動(dòng)呢?趕緊測(cè)試下吧。
PS:若出現(xiàn)無(wú)法同步問(wèn)題?
(1)請(qǐng)查看上圖中Master_Log_File屬性、Read_Master_Log_Pos屬性與主節(jié)點(diǎn)查詢結(jié)果是否一致。
(2)可能是從數(shù)據(jù)庫(kù)連接主數(shù)據(jù)庫(kù)超時(shí),去吧連接延時(shí)改大一點(diǎn)吧。
(3)如果上述無(wú)法解決,請(qǐng)查看mysql日志排查原因。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
- MySQL 主從同步,事務(wù)回滾的實(shí)現(xiàn)原理
- MySQL數(shù)據(jù)庫(kù)主從同步實(shí)戰(zhàn)過(guò)程詳解
- MySQL主從同步中的server-id示例詳解
- MySQL主從同步延遲的原因及解決辦法
- MySQL主從同步機(jī)制與同步延時(shí)問(wèn)題追查過(guò)程
- MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫(xiě)分離
- Mysql主從同步Last_IO_Errno:1236錯(cuò)誤解決方法
- Mysql主從同步的實(shí)現(xiàn)原理
- 詳解Mysql主從同步配置實(shí)戰(zhàn)
- 詳解windows下mysql的主從同步
- 詳解MySQL數(shù)據(jù)庫(kù)設(shè)置主從同步的方法
- Mysql數(shù)據(jù)庫(kù)的主從同步配置
相關(guān)文章
MySQL教程數(shù)據(jù)定義語(yǔ)言DDL示例詳解
這篇文章主要為大家介紹了MySQL教程中什么是數(shù)據(jù)定義語(yǔ)言DDL的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10MySQL 5.0.96 for Windows x86 32位綠色精簡(jiǎn)版安裝教程
這篇文章主要介紹了MySQL 5.0.96 for Windows x86 32位綠色精簡(jiǎn)版安裝教程,需要的朋友可以參考下2017-10-10MySQL基于group_concat()函數(shù)合并多行數(shù)據(jù)
這篇文章主要介紹了MySQL基于group_concat()函數(shù)合并多行數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10MySQL中列子查詢與行子查詢操作的學(xué)習(xí)教程
這篇文章主要介紹了MySQL中列子查詢與行子查詢操作的學(xué)習(xí)教程,子查詢是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12mysql導(dǎo)入csv的4種報(bào)錯(cuò)的解決方法
這篇文章主要介紹了mysql導(dǎo)入csv的4種報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12