亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

準(zhǔn)備兩臺(tái)服務(wù)器并安裝MySQL5.7

master服務(wù)器

192.168.254.132

slave服務(wù)器

192.168.254.136

確保兩臺(tái)服務(wù)器安裝的mysql版本一致,本測(cè)試使用的是mysql5.7,登錄mysql數(shù)據(jù)庫,使用如下命令查看mysql數(shù)據(jù)庫版本

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

 

master服務(wù)器配置流程

1、登錄mysql數(shù)據(jù)庫

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

 

2、創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫名稱為:TONGBU

mysql> create database TONGBU;

3、進(jìn)入TONGBU數(shù)據(jù)庫并創(chuàng)建表TB1

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

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

原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

修改的具體參數(shù)如下:

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 #數(shù)據(jù)庫唯一ID,主從的標(biāo)識(shí)號(hào)絕對(duì)不能重復(fù)。

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

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

binlog-ignore-db=mysql #不同步mysql系統(tǒng)數(shù)據(jù)庫。如果是多個(gè)不同步庫,就以此格式另寫幾行;也可以在一行,中間逗號(hào)隔開。

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

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

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

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

sync_binlog這個(gè)參數(shù)是對(duì)于MySQL系統(tǒng)來說是至關(guān)重要的,他不僅影響到Binlog對(duì)MySQL所帶來的性能損耗,而且還影響到MySQL中數(shù)據(jù)的完整性。對(duì)于"sync_binlog"參數(shù)的各種設(shè)置的說明如下:

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

sync_binlog=n,當(dāng)每進(jìn)行n次事務(wù)提交之后,MySQL將進(jìn)行一次fsync之類的磁盤同步指令來將binlog_cache中的數(shù)據(jù)強(qiáng)制寫入磁盤。

在MySQL中系統(tǒng)默認(rèn)的設(shè)置是sync_binlog=0,也就是不做任何強(qiáng)制性的磁盤刷新指令,這時(shí)候的性能是最好的,但是風(fēng)險(xiǎn)也是最大的。因?yàn)橐坏┫到y(tǒng)Crash,在binlog_cache中的所有binlog信息都會(huì)被丟失。而當(dāng)設(shè)置為“1”的時(shí)候,是最安全但是性能損耗最大的設(shè)置。因?yàn)楫?dāng)設(shè)置為1的時(shí)候,即使系統(tǒng)Crash,也最多丟失binlog_cache中未完成的一個(gè)事務(wù),對(duì)實(shí)際數(shù)據(jù)沒有任何實(shí)質(zhì)性影響。

從相關(guān)測(cè)試來看,對(duì)于高并發(fā)事務(wù)的系統(tǒng)來說,“sync_binlog”設(shè)置為0和設(shè)置為1的系統(tǒng)寫入性能差距可能高達(dá)5倍甚至更多。

5、重置mysql數(shù)據(jù)庫

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

6、授權(quán)給slave查同步權(quán)限

mysql> grant replication slave on *.* to [email protected] identified by "123456";

注意,注意,注意:::

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

如:master-user=slave #該名稱為主服務(wù)器上可以進(jìn)行同步的用戶名,也是在此處授權(quán)的用戶;

另外這一步容易出現(xiàn)一個(gè)異常,異常如下

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

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

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

 

執(zhí)行刷新數(shù)據(jù)庫:

flush privileges;

7、授權(quán)成功后,查看主從狀態(tài)

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

 

8、查看二進(jìn)制日志文件

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

 

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

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

 

9、備份要同步的數(shù)據(jù)庫

1)、數(shù)據(jù)庫備份語法

表結(jié)構(gòu)+數(shù)據(jù)

mysqldump -u用戶名 -p 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql

只導(dǎo)出表結(jié)構(gòu)

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

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

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

本系統(tǒng)中mysql數(shù)據(jù)庫導(dǎo)出目錄如下:

/usr/bin/mysqldump

原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

2)、執(zhí)行數(shù)據(jù)庫導(dǎo)出命令

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

 

10、把導(dǎo)出的數(shù)據(jù)庫文件拷貝到slave(192.168.254.136)服務(wù)器上

[root@hadoop4 mytest]# src TONGBU.sql [email protected]:/usr/mytest/
原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

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

原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

11、slave(192.168.254.136)數(shù)據(jù)庫導(dǎo)入備份腳本

1)、數(shù)據(jù)庫導(dǎo)入語法

使用 mysql 命令導(dǎo)入數(shù)據(jù)庫格式如下:

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

使用 source 命令導(dǎo)入

先登錄到 mysql 中,并創(chuàng)建一個(gè)空的數(shù)據(jù)庫:

mysql> create database abc; # 創(chuàng)建數(shù)據(jù)庫
mysql> use abc; # 使用已創(chuàng)建的數(shù)據(jù)庫 
mysql> set names utf8; # 設(shè)置編碼
mysql> source /home/abc/abc.sql # 導(dǎo)入備份數(shù)據(jù)庫

2)、slave(192.168.254.136)數(shù)據(jù)庫具體導(dǎo)入步驟

登錄數(shù)據(jù)庫,并創(chuàng)建數(shù)據(jù)庫

[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)
原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

執(zhí)行導(dǎo)入命令如下:

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

 

slave服務(wù)器配置流程

1、設(shè)置slave數(shù)據(jù)庫的my.cnf配置文件

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

 

具體配置:

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

提示:

[mysqld]

server-id=2 #設(shè)置從服務(wù)器id,必須于主服務(wù)器不同

log-bin=mysql-bin #啟動(dòng)MySQ二進(jìn)制日志系統(tǒng)

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

replicate-ignore-db=mysql #不同步test數(shù)據(jù)庫

slave-skip-errors = all #跳過所有的錯(cuò)誤,繼續(xù)執(zhí)行復(fù)制操作

當(dāng)只針對(duì)某些庫的某張表進(jìn)行同步時(shí),如下,只同步liting庫的haha表和test庫的heihei表:

replicate-do-db = liting

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

replicate-do-db = test

replicate-wild-do-table = test.heihei //如果同步的庫的表比較多時(shí),就不能這樣一一指定了,就把這個(gè)選項(xiàng)配置去掉,直接根據(jù)指定的庫進(jìn)行同步。

重點(diǎn)

master-user=slave #指定定在主服務(wù)器上可以進(jìn)行同步的用戶名

master-password=123456 #密碼

這兩個(gè)配置要與主服務(wù)器上授權(quán)的用戶名和密碼一致,不到主從無法同步數(shù)據(jù),一定要清楚這一點(diǎn),也是主服務(wù)器和從服務(wù)器是否能同步的核心要點(diǎn)

mysql> grant replication slave on *.* to [email protected] identified by "123456";

2、設(shè)置啟用授權(quán)用戶

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

3、查看配置狀態(tài)是否成功

1)、從服務(wù)器配置狀態(tài)查看如下

mysql> show slave statusG
原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

2)、主服務(wù)器配置狀態(tài)查看命令如下:

mysql> show processlist G
原創(chuàng):linux中部署mysql主從同步示例詳解(絕對(duì)經(jīng)典,看了必會(huì))

 

目前主服務(wù)器和從服務(wù)器的配置已經(jīng)全部結(jié)束,下面我們進(jìn)行測(cè)試

1、進(jìn)入主服務(wù)器,登錄mysql數(shù)據(jù)庫

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

2、進(jìn)入TONGBU數(shù)據(jù)庫,并在TB1表中添加一條數(shù)據(jù)

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

 

3、查看主服務(wù)器中,TONGBU數(shù)據(jù),TB1表中是否添加成功

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

 

4、進(jìn)入從服務(wù)器,登錄mysql數(shù)據(jù)庫

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

5、進(jìn)入TONGBU數(shù)據(jù)庫,并查詢TB1表

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

 

可以看到,從服務(wù)器已經(jīng)同步了主服務(wù)器的數(shù)據(jù)庫信息,linux下部署mysql主從同步-成功!!!!

分享到:
標(biāo)簽:linux mysql
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定