日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

準備兩臺服務器并安裝MySQL5.7

master服務器

192.168.254.132

slave服務器

192.168.254.136

確保兩臺服務器安裝的mysql版本一致,本測試使用的是mysql5.7,登錄mysql數據庫,使用如下命令查看mysql數據庫版本

[root@localhost ~]# mysql -u root -p
Enter password: 
mysql> show variables like '%version%';
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

master服務器配置流程

1、登錄mysql數據庫

[root@localhost ~]# mysql -u root -p
Enter password: 
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

2、創建數據庫,數據庫名稱為:TONGBU

mysql> create database TONGBU;

3、進入TONGBU數據庫并創建表TB1

mysql> use TONGBU;
mysql> create table TB1(id varchar(60),name varchar(100));

4、修改配置/etc/my.cnf文件

原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

修改的具體參數如下:

server-id=1
log-bin=mysql-bin
binlog-do-db=TONGBU
binlog-ignore-db=mysql
sync_binlog=1
binlog_checksum=none
binlog_format=mixed

提示

[mysqld] server-id=1 #數據庫唯一ID,主從的標識號絕對不能重復。

log-bin=mysql-bin #開啟bin-log,并指定文件目錄和文件名前綴

binlog-do-db=liting #需要同步liting數據庫。如果是多個同步庫,就以此格式另寫幾行即可。如果不指明對某個具體庫同步,就去掉此行,表示同步所有庫(除了ignore忽略的庫)。

binlog-ignore-db=mysql #不同步mysql系統數據庫。如果是多個不同步庫,就以此格式另寫幾行;也可以在一行,中間逗號隔開。

sync_binlog = 1 #確保binlog日志寫入后與硬盤同步

binlog_checksum = none #跳過現有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none

binlog_format = mixed #bin-log日志文件格式,設置為MIXED可以防止主鍵重復。

在主服務器上最重要的二進制日志設置是sync_binlog,這使得mysql在每次提交事務的時候把二進制日志的內容同步到磁盤上,即使服務器崩潰也會把事件寫入日志中。

sync_binlog這個參數是對于MySQL系統來說是至關重要的,他不僅影響到Binlog對MySQL所帶來的性能損耗,而且還影響到MySQL中數據的完整性。對于"sync_binlog"參數的各種設置的說明如下:

sync_binlog=0,當事務提交之后,MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤,而讓Filesystem自行決定什么時候來做同步,或者cache滿了之后才同步到磁盤。

sync_binlog=n,當每進行n次事務提交之后,MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤。

在MySQL中系統默認的設置是sync_binlog=0,也就是不做任何強制性的磁盤刷新指令,這時候的性能是最好的,但是風險也是最大的。因為一旦系統Crash,在binlog_cache中的所有binlog信息都會被丟失。而當設置為“1”的時候,是最安全但是性能損耗最大的設置。因為當設置為1的時候,即使系統Crash,也最多丟失binlog_cache中未完成的一個事務,對實際數據沒有任何實質性影響。

從相關測試來看,對于高并發事務的系統來說,“sync_binlog”設置為0和設置為1的系統寫入性能差距可能高達5倍甚至更多。

5、重置mysql數據庫

[root@hadoop4 ~]# systemctl restart mysqld.service

6、授權給slave查同步權限

mysql> grant replication slave on *.* to slave@192.168.254.136 identified by "123456";

注意,注意,注意:::

授權的用戶:slave,不是從服務器的用戶名,也不是從服務器中Mysql登錄用的用戶名,也是主服務器為從服務器自定義開戶的一個可供從服務讀(或者說是同步數據)數據用的一個用戶名,可以自定義,但是要求從服務器在my.cnf配置文件中配置的master-user參數的名稱一致,

如:master-user=slave #該名稱為主服務器上可以進行同步的用戶名,也是在此處授權的用戶;

另外這一步容易出現一個異常,異常如下

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因是不滿足密碼設置的策略,這里需要兩個命令來設置一下slave服務器mysql密碼設置的策略

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

執行刷新數據庫:

flush privileges;

7、授權成功后,查看主從狀態

 mysql> show master status;
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

8、查看二進制日志文件

[root@hadoop4 ~]# find / -name mysql-bin.000001
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

可以看到二進制日志文件在路徑:/var/lib/mysql/mysql-bin.000001下

[root@hadoop4 ~]# ll /var/lib/mysql
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

9、備份要同步的數據庫

1)、數據庫備份語法

表結構+數據

mysqldump -u用戶名 -p 數據庫名 > 數據庫名.sql

只導出表結構

mysqldump -u用戶名 -p -d 數據庫名 > 數據庫名.sql如
示例:
#/usr/local/mysql/bin/mysqldump -uroot -p -d abc > abc.sql

執行備份命令前,一定要先到mysql的運行路徑下,再執行一下命令,如果不知道可以通過find命令查詢:

[root@hadoop4 ~]# find / -name mysqldump

本系統中mysql數據庫導出目錄如下:

/usr/bin/mysqldump

原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

2)、執行數據庫導出命令

[root@hadoop4 ~]# /usr/bin/mysqldump -uroot -p TONGBU > /usr/mytest/TONGBU.sql
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

10、把導出的數據庫文件拷貝到slave(192.168.254.136)服務器上

[root@hadoop4 mytest]# src TONGBU.sql root@192.168.254.136:/usr/mytest/
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

slave(192.168.254.136)服務器上拷貝成功:

原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

11、slave(192.168.254.136)數據庫導入備份腳本

1)、數據庫導入語法

使用 mysql 命令導入數據庫格式如下:

mysql -u用戶名 -p 數據庫名 < 數據庫名.sql
 示例:
# mysql -uroot -p123456 < abc.sql

使用 source 命令導入

先登錄到 mysql 中,并創建一個空的數據庫:

mysql> create database abc; # 創建數據庫
mysql> use abc; # 使用已創建的數據庫 
mysql> set names utf8; # 設置編碼
mysql> source /home/abc/abc.sql # 導入備份數據庫

2)、slave(192.168.254.136)數據庫具體導入步驟

登錄數據庫,并創建數據庫

[root@localhost mytest]# mysql -u root -p
mysql> create database TONGBU;
Query OK, 1 row affected (0.03 sec)
mysql> use TONGBU;
Database changed
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

執行導入命令如下:

[root@localhost mytest]# mysql -uroot -p TONGBU < /usr/mytest/TONGBU.sql 
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

slave服務器配置流程

1、設置slave數據庫的my.cnf配置文件

[root@localhost mytest]# vi /etc/my.cnf
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

具體配置:

[mysqld]
server-id=2
log-bin=mysql-bin-slave #從主機中可要可不要
replicate-do-db=TONGBU
replicate-ignore-db=mysql
slave-skip-errors = all
master-host=192.168.254.132 #指定主服務器IP地址
master-user=slave #指定定在主服務器上可以進行同步的用戶名
master-password=123456 #密碼
#master-port=3306
master-connect-retry=60 #斷點重新連接時間

提示:

[mysqld]

server-id=2 #設置從服務器id,必須于主服務器不同

log-bin=mysql-bin #啟動MySQ二進制日志系統

replicate-do-db=liting #需要同步的數據庫名。如果不指明同步哪些庫,就去掉這行,表示所有庫的同步(除了ignore忽略的庫)。

replicate-ignore-db=mysql #不同步test數據庫

slave-skip-errors = all #跳過所有的錯誤,繼續執行復制操作

當只針對某些庫的某張表進行同步時,如下,只同步liting庫的haha表和test庫的heihei表:

replicate-do-db = liting

replicate-wild-do-table = liting.haha //當只同步幾個或少數表時,可以這樣設置。注意這要跟上面的庫指定配合使用;

replicate-do-db = test

replicate-wild-do-table = test.heihei //如果同步的庫的表比較多時,就不能這樣一一指定了,就把這個選項配置去掉,直接根據指定的庫進行同步。

重點

master-user=slave #指定定在主服務器上可以進行同步的用戶名

master-password=123456 #密碼

這兩個配置要與主服務器上授權的用戶名和密碼一致,不到主從無法同步數據,一定要清楚這一點,也是主服務器和從服務器是否能同步的核心要點

mysql> grant replication slave on *.* to slave@192.168.254.136 identified by "123456";

2、設置啟用授權用戶

mysql>stop slave; #停止slave
mysql> change master to master_host='192.168.254.132',master_user='slave',master_password='123456';
mysql> start slave; #啟動slave

3、查看配置狀態是否成功

1)、從服務器配置狀態查看如下

mysql> show slave statusG
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

2)、主服務器配置狀態查看命令如下:

mysql> show processlist G
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

目前主服務器和從服務器的配置已經全部結束,下面我們進行測試

1、進入主服務器,登錄mysql數據庫

[root@localhost ~]# mysql -u root -p
Enter password: 

2、進入TONGBU數據庫,并在TB1表中添加一條數據

mysql> use TONGBU;
 
mysql> insert into TB1 values('10001','testname1');
 
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

3、查看主服務器中,TONGBU數據,TB1表中是否添加成功

mysql> select * from TB1;
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

4、進入從服務器,登錄mysql數據庫

[root@localhost ~]# mysql -u root -p
Enter password: 

5、進入TONGBU數據庫,并查詢TB1表

mysql> select * from TB1;
原創:linux中部署mysql主從同步示例詳解(絕對經典,看了必會)

 

可以看到,從服務器已經同步了主服務器的數據庫信息,linux下部署mysql主從同步-成功?。。?!

分享到:
標簽:linux mysql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定