做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

linuxcentos下mysql數據庫的主從復制環境搭建_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 09:20:44
文檔

linuxcentos下mysql數據庫的主從復制環境搭建_MySQL

linuxcentos下mysql數據庫的主從復制環境搭建_MySQL:有兩臺MySQL數據庫服務器Master和slave,Master為主服務器,slave為從服務器,初始狀態時,Master和slave中的數據信息相同,當Master中的數據發生變化時,slave也跟著發生相應的變化,使得master和slave的數據信息同步,達到備份的目的。 原理圖如下:
推薦度:
導讀linuxcentos下mysql數據庫的主從復制環境搭建_MySQL:有兩臺MySQL數據庫服務器Master和slave,Master為主服務器,slave為從服務器,初始狀態時,Master和slave中的數據信息相同,當Master中的數據發生變化時,slave也跟著發生相應的變化,使得master和slave的數據信息同步,達到備份的目的。 原理圖如下:
有兩臺MySQL數據庫服務器Master和slave,Master為主服務器,slave為從服務器,初始狀態時,Master和slave中的數據信息相同,當Master中的數據發生變化時,slave也跟著發生相應的變化,使得master和slave的數據信息同步,達到備份的目的。

原理圖如下:

\

簡單來說,mysql的主從復制的原理就是slave把master上面執行的 update,insert這些會使數據發生改變的sql語句從master上面同步過來,然后在自己的機器上再執行一遍,那么這兩臺數據庫服務器上的數據就一模一樣了,而那些要同步的sql語句就存在bin-log文件里面

我這里有兩臺機器分別是192.168.1.6(master) 192.168.1.5(slave)

\

我們先從master機器開始配置

修改/etc/my.cnf 文件(mysql啟動默認是從/etc/my.cnf讀取的,所以你別的地方有配置文件的話建議直接移到/etc目錄下)

[client]
port = 3306
socket = /usr/local/mysql/mysql.sock

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci

skip-external-locking
skip-name-resolve

user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /home/mysql/data
tmpdir = /home/mysql/temp
# server_id = .....
socket = /usr/local/mysql/mysql.sock
log-error = /home/mysql/logs/mysql_error.log
pid-file = /home/mysql/mysql.pid

open_files_limit = 10240

back_log = 600
max_connections=500
max_connect_errors = 6000
wait_timeout=605800

#open_tables = 600
#table_cache = 650
#opened_tables = 630

max_allowed_packet = 32M

sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 300
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 2M
query_cache_min_res_unit = 16k

tmp_table_size = 256M
max_heap_table_size = 256M

key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M

lower_case_table_names=1

default-storage-engine = INNODB

innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
innodb_flush_method = O_DIRECT

#####################
thread_concurrency = 32
long_query_time= 2
slow-query-log = on
slow-query-log-file = /home/mysql/logs/mysql-slow.log 

## replication
server_id=6
binlog-ignore-db=mysql
log-bin=master-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062

[mysqldump]
quick
max_allowed_packet = 32M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

這里主要的配置就是和復制相關的這段配置,其它配置是mysql源碼安裝時配置,里面具體參數代表什么意思可以網上搜一下,文檔很多的
## replication
server_id=6
binlog-ignore-db=mysql
log-bin=master-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
我簡單解釋一下,復制有關的參數

serverid 全局唯一的

binlog-ignore-db=mysql復制過濾,我們不同步mysql系統自帶的數據庫

log-bin=master-mysql-bin 開啟logbin功能并設置logbin文件的名稱

binlog_format=mixed 混合型復制模式,默認采用基于語句的復制,一旦發現基于語句的無法精確的復制時,就會采用基于行的復制。

接下來重啟mysql服務并用客戶端登錄

\

slave想要同步master上的數據首先肯定需要權限,所以我們要在master上面開通權限

grant replication slave, replication client on *.* to 'root'@'192.168.1.5' identified by
'root';
賬號和密碼都是root ,允許192.168.1.5這臺機器向master發送同步請求,當然你可以設成別的,我這里只是為了方便記憶,設了太多不同的密碼容易忘記

\

刷新一下授權信息,然后查看當前master的狀態

\

show master status,我這里解釋一下,我們知道關于對數據庫修改的sql全部記錄在了bin-log里面,那么我們就每次都把bin-log里面的sql全部執行一遍?肯定不是,我們肯定要記錄我上次復制到哪兒里了,然后我下次再從這個點開始同步,就像我們玩單機游戲闖了3關以后要存下檔一樣,下次玩我們繼續從第三關開始玩,這是一個意思。

接下來我們隨便寫點測試數據到數據庫里面去

create database if not exists pcx default charset utf8 collate utf8_general_ci;
use pcx;
DROP TABLE IF EXISTS `fruits`;
CREATE TABLE fruits
(
f_id char(10) 	NOT NULL,
s_id INT 	NOT NULL,
f_name char(255) 	NOT NULL,
f_price decimal(8,2) 	NOT NULL,
PRIMARY KEY(f_id) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

INSERT INTO fruits (f_id, s_id, f_name, f_price)
 VALUES('a1', 101,'apple',5.2),
 ('b1',101,'blackberry', 10.2),
 ('bs1',102,'orange', 11.2),
 ('bs2',105,'melon',8.2),
 ('t1',102,'banana', 10.3),
 ('t2',102,'grape', 5.3),
 ('o2',103,'coconut', 9.2),
 ('c0',101,'cherry', 3.2),
 ('a2',103, 'apricot',2.2),
 ('l2',104,'lemon', 6.4),
 ('b2',104,'berry', 7.6),
 ('m1',106,'mango', 15.6),
 ('m2',105,'xbabay', 2.6),
 ('t4',107,'xbababa', 3.6),
 ('m3',105,'xxtt', 11.6),
 ('b5',107,'xxxx', 3.6);
\

接下來我們把pcx這個庫下的數據全部備份下來

首先我們要鎖表

flush tables with read lock;
接下來用mysql的備份命令進行備份

\

最后我們把edu-master.sql發送到slave的機器上面

好了,我們接下來開始配置slave(192.168.1.5)

同樣打開my.cnf文件開始配置

vi /etc/my.cnf

[client]
port = 3306
socket = /usr/local/mysql/mysql.sock

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci

skip-external-locking
skip-name-resolve

user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /home/mysql/data
tmpdir = /home/mysql/temp
# server_id = .....
socket = /usr/local/mysql/mysql.sock
log-error = /home/mysql/logs/mysql_error.log
pid-file = /home/mysql/mysql.pid

open_files_limit = 10240

back_log = 600
max_connections=500
max_connect_errors = 6000
wait_timeout=605800

#open_tables = 600
#table_cache = 650
#opened_tables = 630

max_allowed_packet = 32M

sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 300
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 2M
query_cache_min_res_unit = 16k

tmp_table_size = 256M
max_heap_table_size = 256M

key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M

lower_case_table_names=1

default-storage-engine = INNODB

innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
innodb_flush_method = O_DIRECT

#####################
thread_concurrency = 32
long_query_time= 2
slow-query-log = on
slow-query-log-file = /home/mysql/logs/mysql-slow.log 


## replication
server_id=5
binlog-ignore-db=mysql
log-bin=mysql-slave-bin
binlog_cache_size = 1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1


[mysqldump]
quick
max_allowed_packet = 32M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
配置文件和master的差不多,主要差別在一下幾點

log-bin=mysql-slave-bin開啟了二進制日志,實際上不開也沒關系,因為我們這個slave只是做slave,如果你這臺slave還有可能要做別人的master的話那么必須開啟

relay_log=mysql-relay-bin配置中繼日志,用來存放從master的bin-log那邊同步來的數據

配置好后重啟數據庫服務

service mysql restart

我們首先要創建一下數據庫,因為我們備份下來的數據庫文件里面是不包含創建數據庫的命令的,所以我們要手動創建一下

\

把我們從master那邊備份過來的數據恢復到slave中

\

登錄 Slave 數據庫

\

在mysql客戶端中輸入一下命令連接master

\

change master to ,
master_host='192.168.1.6' master主機的ip地址

master_user='root',

master_password='root', 我們剛剛在master有執行過授權的賬號密碼就是這個

master_port=3306,master數據庫的端口號

master_log_file='edu-mysql-bin.000002',

master_log_pos=427, 這個是我們通過show master status看到的position

master_connect_retry=30;

使用命令查看slave狀態,我們可以看到slave目前還未開始同步

 show slave status\G;
\

開始主從同步,主要看到兩個yes就代表同步成功了

start slave;
\

在master機器上查看狀態,可以看見slave的連接信息

show processlist\G;
\

接下來我們測試一下主從復制的功能

master 上原來的數據

\

這是我插入的記錄

\

我們到slave上面看看有沒有,有就代表成功了

\

至此mysql原生支持的主從復制搭建完畢,當然我們說mysql的主從復制

性能上回有延遲,master上的數據不是無延遲的同步到slave上面,所以如果你對數據的一致性要求非常高的話,那么mysql官方的主從復制就不合適了,可以考慮用別的數據同步方案例如“Galera Cluster for MySQL” ,當然也有人說mysql官方支持的主從復制只是適合在中小規模的集群下運行。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

linuxcentos下mysql數據庫的主從復制環境搭建_MySQL

linuxcentos下mysql數據庫的主從復制環境搭建_MySQL:有兩臺MySQL數據庫服務器Master和slave,Master為主服務器,slave為從服務器,初始狀態時,Master和slave中的數據信息相同,當Master中的數據發生變化時,slave也跟著發生相應的變化,使得master和slave的數據信息同步,達到備份的目的。 原理圖如下:
推薦度:
標簽: 數據庫 linux 39
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 冕宁县| 长治县| 寿光市| 得荣县| 香格里拉县| 章丘市| 祥云县| 盱眙县| 廉江市| 濮阳县| 松溪县| 祁阳县| 金乡县| 安阳市| 胶南市| 深泽县| 新源县| 淄博市| 循化| 蒙城县| 永吉县| 商都县| 新源县| 长沙县| 霍山县| 龙岩市| 长武县| 当阳市| 伊金霍洛旗| 抚顺市| 广南县| 济南市| 温泉县| 翁源县| 乌拉特中旗| 米易县| 绍兴市| 延长县| 晋江市| 叶城县| 聊城市|