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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 三主_MySQL主主复制3

發布時間:2023/12/9 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 三主_MySQL主主复制3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、創建并授權用戶

在每一臺(主)服務器上創建一個用戶,并為之授權,使它們可以互相訪問彼此的數據庫

在Server-1上:

創建一個充許Server-2來訪問的用戶server2,密碼為:server2

mysql> GRANT REPLICATION SLAVE ON *.*

> TO ‘server2’@’192.168.0.2’ IDENTIFIED BY ‘server2’;

在Server-2上:

創建一個充許Server-1來訪問的用戶server1,密碼為:server1

mysql> GRANT REPLICATION SLAVE ON *.*

> TO ‘server1’@’192.168.0.1’ IDENTIFIED BY ‘server1’;

編者注:最好整成同一個用戶和同一個密碼!!

二、修改MySQL主配置文件

在MySQL的主配置文件中修改/添加如下內容:

Server-1上:

[mysqld]

server-id = 10

log-bin = mysql-bin

replicate-do-db = mydb

auto-increment-increment = 2

auto-increment-offset=1

# service mysqld restart

Server-2上:

[mysqld]

server-id = 20

log-bin = mysql-bin

replicate-do-db = mydb

auto-increment-increment = 2

auto-increment-offset =2

# service mysqld restart

注:二者只有server-id不同和 auto-increment- offset不同

auto-increment-offset是用來設定數據庫中自動增長的起點的,因為這兩臺服務器都設定了同一個自動增長值2,所以它們的起點必須得不同,這樣才能避免兩臺服務器數據同步時出現主鍵沖突

replicate-do-db 指定同步的數據庫,我們只在兩臺服務器間同步mydb數據庫

另:auto-increment-increment的值應設為整個結構中服務器的總數,本案例用到兩臺服務器,所以值設為2

三、復制其中一臺服務器的數據庫到另外一臺服務器

這一步中誰做為源數據不重要,重要的是在正式的復制(Replication)開始之前兩臺服務都能準確的反應彼此的數據。

我們可以先從源數據庫中導出數據到備份文件,這里我們使用mysqldump命令

以Server-1上數據庫為源數據庫

備份數據前先鎖表,保證數據一致性

mysql> FLUSH TABLES WITH READ LOCK;

> SHOW MASTER STATUS;

+—————–+————+—————-+——————–+

|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+—————–+————+—————-+——————–+

|mysql-bin.000006 | 213 | | |

+—————–+————+—————-+——————–+

該結果顯示,源服務器現在處于6號二進制文件的213位置

開始備份數據庫

# mysqldump –user=root -p mydb > /tmp/mydb.sql

備份完畢,現在可以解鎖數據庫表

mysql> UNLOCK TABLES;

Query OK, 0 rows affected (0.00 sec)

四、將備份數據導入Server-2

先在Server-2上創建一個與mydb同名的空數據庫

# mysql

> CREATE DATABASE mydb;

>\q

# scp 192.168.0.1:/tmp/mydb.sql ./

# mysql -uroot -p mydb < /tmp/mydb.sql

此時,我們需要注意當前服務器的二進制日志的位置

# mysql

> LOCK TALBES WITH READ LOCK;

> SHOW MASTER STATUS;

+—————–+————+—————-+——————–+

|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+—————–+————+—————-+——————–+

|mysql-bin.000001 | 106 | | |

+—————–+————+—————-+——————–+

1 row in set (0.00 sec)

> UNLOCK TABLES;

五、互相通告二進制日志位置

在Server-1上:

# mysql

> CHANGE MASTER TO

> MASTER_HOST=’192.168.0.2′,

> MASTER_USER=’server1′, //???

> MASTER_PASSWORD=’server1′,

> MASTER_LOG_FILE=’mysql-bin.000001′,

> MASTER_LOG_POS=106;

在Server-2上:

# mysql

> CHANGE MASTER TO

> MASTER_HOST=’192.168.0.1′,

> MASTER_USER=’server2′,

> MASTER_PASSWORD=’server2′,

> MASTER_LOG_FILE=’mysql-bin.000006′,

> MASTER_LOG_POS=213;

六、啟動復制(Replication)功能

在兩臺主機上分別執行

# mysql

> START SLAVE;

配置到此完成!

總結

以上是生活随笔為你收集整理的mysql 三主_MySQL主主复制3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。