日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux mysql 主从数据库_linux mysql数据库的主从配置

發(fā)布時(shí)間:2024/4/18 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux mysql 主从数据库_linux mysql数据库的主从配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、原理

mysql主從配置的流程大體如圖:

1)master會(huì)將變動(dòng)記錄到二進(jìn)制日志里面;

2)master有一個(gè)I/O線程將二進(jìn)制日志發(fā)送到slave;

3) slave有一個(gè)I/O線程把master發(fā)送的二進(jìn)制寫入到relay日志里面;

4)slave有一個(gè)SQL線程,按照relay日志處理slave的數(shù)據(jù);

二、操作步驟

按照原理,我們開啟mysql主從復(fù)制,我們大體需要做以下操作:

1)開啟master的二進(jìn)制日志

2)開啟slave的二進(jìn)制日志

3)將slave指向master

4)開始復(fù)制

三、開啟master二進(jìn)制日志

1)編輯mysql的配置文件,使用命令:

vim /etc/my.cnf

2)添加二進(jìn)制日志配置,開啟二進(jìn)制(master-bin只是日志文件名稱,可以自己指定)

log-bin=master-bin

server-id=1

注意:server-id是要指定的,不然會(huì)報(bào)錯(cuò),每一臺指定一個(gè)唯一標(biāo)識符

四、授權(quán)

我們需要給slave配置一個(gè)用戶/密碼的權(quán)限

mysql>GRANT REPLICATION SLAVE ON *.* TO '用戶名'@'slave數(shù)據(jù)庫的IP地址' IDENTIFIED BY '密碼';

這行命令的意思是:允許在某個(gè)IP地址的某個(gè)用戶以某個(gè)密碼對當(dāng)前數(shù)據(jù)庫的所有庫和所有表進(jìn)行復(fù)制操作

注意:以上配置了權(quán)限,我們需要刷新以下權(quán)限使用命令:

mysql>flush privileges;

或者直接重啟mysql服務(wù):

service mysql restart;

五、查看以下master的狀態(tài)

其實(shí)主要是查看以下master的日志文件名字,以及文件所在的位置,使用命令:

show master status;

可以看到類似如下信息:

+-------------------+----------+--------------+------------------+-------------------+

| File| Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+-------------------+----------+--------------+------------------+-------------------+

| master-bin.000001 |?1516 |||?|

+-------------------+----------+--------------+------------------+-------------------+

File: 日志文件名稱

Position: 日志所在位置

六、開啟slave的二進(jìn)制日志

進(jìn)入slave的服務(wù)器

1)編輯mysql的配置文件,使用命令:

vim /etc/my.cnf

2)添加二進(jìn)制日志配置,開啟二進(jìn)制(relay-bin只是日志文件名稱,可以自己指定)

log-bin=relay-bin

server-id=2

注意:server-id是要指定的,不然會(huì)報(bào)錯(cuò),每一臺指定一個(gè)唯一標(biāo)識符

七、將slave指向master

mysql>CHANGE MASTER TO

>MASTER_HOST='master所在服務(wù)器的IP',

>MASTER_USER='master授權(quán)的賬號',

>MASTER_PASSWORD='master授權(quán)的密碼',

>MASTER_LOG_FILE='master的日志文件名',

>MASTER_LOG_POS=master的日志所在位置;

八、開始主從復(fù)制

在slave上執(zhí)行

mysql>start slave;

我們可以查看slave的運(yùn)行狀態(tài):

show slave status\G;

可以看到類似如下內(nèi)容:

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: master的IP地址

Master_User: root

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-bin.000001

Read_Master_Log_Pos: 1516

Relay_Log_File: slave-bin.000004

Relay_Log_Pos: 1117

Relay_Master_Log_File: master-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

......

注意:

Slave_IO_Running: YES 表示slave的日志讀取線程開啟

Slave_SQL_Running: YES 表示SQL執(zhí)行線程開啟

如果有主從復(fù)制有錯(cuò)誤信息其實(shí)也可以看到

九、測試

以上我們就將主從復(fù)制功能設(shè)置完畢了,我們可以通過在master里面創(chuàng)建數(shù)據(jù)庫,或者表,插入數(shù)據(jù)等來測試一下

十、注意點(diǎn)

1)開啟了主從復(fù)制,slave庫如果寫入數(shù)據(jù)的話,可能導(dǎo)致數(shù)據(jù)回滾從而主從復(fù)制線程中斷,可以通過以下方式解決:

mysql> stop slave;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> start slave;

2)如果要停止slave的復(fù)制可以使用命令:

mysql>stop slave;

3)由于主從復(fù)制是基于I/O的日志,所以會(huì)存在一定延時(shí),如果對數(shù)據(jù)一致性要求非常高的話,簡單的主從復(fù)制在實(shí)際環(huán)境中會(huì)存在問題

參考文章:

總結(jié)

以上是生活随笔為你收集整理的linux mysql 主从数据库_linux mysql数据库的主从配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。