<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 09:20:44
        文檔

        linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL

        linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL:有兩臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器Master和slave,Master為主服務(wù)器,slave為從服務(wù)器,初始狀態(tài)時(shí),Master和slave中的數(shù)據(jù)信息相同,當(dāng)Master中的數(shù)據(jù)發(fā)生變化時(shí),slave也跟著發(fā)生相應(yīng)的變化,使得master和slave的數(shù)據(jù)信息同步,達(dá)到備份的目的。 原理圖如下:
        推薦度:
        導(dǎo)讀linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL:有兩臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器Master和slave,Master為主服務(wù)器,slave為從服務(wù)器,初始狀態(tài)時(shí),Master和slave中的數(shù)據(jù)信息相同,當(dāng)Master中的數(shù)據(jù)發(fā)生變化時(shí),slave也跟著發(fā)生相應(yīng)的變化,使得master和slave的數(shù)據(jù)信息同步,達(dá)到備份的目的。 原理圖如下:
        有兩臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器Master和slave,Master為主服務(wù)器,slave為從服務(wù)器,初始狀態(tài)時(shí),Master和slave中的數(shù)據(jù)信息相同,當(dāng)Master中的數(shù)據(jù)發(fā)生變化時(shí),slave也跟著發(fā)生相應(yīng)的變化,使得master和slave的數(shù)據(jù)信息同步,達(dá)到備份的目的。

        原理圖如下:

        \

        簡(jiǎn)單來說,mysql的主從復(fù)制的原理就是slave把master上面執(zhí)行的 update,insert這些會(huì)使數(shù)據(jù)發(fā)生改變的sql語(yǔ)句從master上面同步過來,然后在自己的機(jī)器上再執(zhí)行一遍,那么這兩臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)就一模一樣了,而那些要同步的sql語(yǔ)句就存在bin-log文件里面

        我這里有兩臺(tái)機(jī)器分別是192.168.1.6(master) 192.168.1.5(slave)

        \

        我們先從master機(jī)器開始配置

        修改/etc/my.cnf 文件(mysql啟動(dòng)默認(rèn)是從/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
        

        這里主要的配置就是和復(fù)制相關(guān)的這段配置,其它配置是mysql源碼安裝時(shí)配置,里面具體參數(shù)代表什么意思可以網(wǎng)上搜一下,文檔很多的
        ## 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
        我簡(jiǎn)單解釋一下,復(fù)制有關(guān)的參數(shù)

        serverid 全局唯一的

        binlog-ignore-db=mysql復(fù)制過濾,我們不同步mysql系統(tǒng)自帶的數(shù)據(jù)庫(kù)

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

        binlog_format=mixed 混合型復(fù)制模式,默認(rèn)采用基于語(yǔ)句的復(fù)制,一旦發(fā)現(xiàn)基于語(yǔ)句的無法精確的復(fù)制時(shí),就會(huì)采用基于行的復(fù)制。

        接下來重啟mysql服務(wù)并用客戶端登錄

        \

        slave想要同步master上的數(shù)據(jù)首先肯定需要權(quán)限,所以我們要在master上面開通權(quán)限

        grant replication slave, replication client on *.* to 'root'@'192.168.1.5' identified by
        'root';
        賬號(hào)和密碼都是root ,允許192.168.1.5這臺(tái)機(jī)器向master發(fā)送同步請(qǐng)求,當(dāng)然你可以設(shè)成別的,我這里只是為了方便記憶,設(shè)了太多不同的密碼容易忘記

        \

        刷新一下授權(quán)信息,然后查看當(dāng)前master的狀態(tài)

        \

        show master status,我這里解釋一下,我們知道關(guān)于對(duì)數(shù)據(jù)庫(kù)修改的sql全部記錄在了bin-log里面,那么我們就每次都把bin-log里面的sql全部執(zhí)行一遍?肯定不是,我們肯定要記錄我上次復(fù)制到哪兒里了,然后我下次再?gòu)倪@個(gè)點(diǎn)開始同步,就像我們玩單機(jī)游戲闖了3關(guān)以后要存下檔一樣,下次玩我們繼續(xù)從第三關(guān)開始玩,這是一個(gè)意思。

        接下來我們隨便寫點(diǎn)測(cè)試數(shù)據(jù)到數(shù)據(jù)庫(kù)里面去

        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這個(gè)庫(kù)下的數(shù)據(jù)全部備份下來

        首先我們要鎖表

        flush tables with read lock;
        接下來用mysql的備份命令進(jìn)行備份

        \

        最后我們把edu-master.sql發(fā)送到slave的機(jī)器上面

        好了,我們接下來開始配置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的差不多,主要差別在一下幾點(diǎn)

        log-bin=mysql-slave-bin開啟了二進(jìn)制日志,實(shí)際上不開也沒關(guān)系,因?yàn)槲覀冞@個(gè)slave只是做slave,如果你這臺(tái)slave還有可能要做別人的master的話那么必須開啟

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

        配置好后重啟數(shù)據(jù)庫(kù)服務(wù)

        service mysql restart

        我們首先要?jiǎng)?chuàng)建一下數(shù)據(jù)庫(kù),因?yàn)槲覀儌浞菹聛淼臄?shù)據(jù)庫(kù)文件里面是不包含創(chuàng)建數(shù)據(jù)庫(kù)的命令的,所以我們要手動(dòng)創(chuàng)建一下

        \

        把我們從master那邊備份過來的數(shù)據(jù)恢復(fù)到slave中

        \

        登錄 Slave 數(shù)據(jù)庫(kù)

        \

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

        \

        change master to ,
        master_host='192.168.1.6' master主機(jī)的ip地址

        master_user='root',

        master_password='root', 我們剛剛在master有執(zhí)行過授權(quán)的賬號(hào)密碼就是這個(gè)

        master_port=3306,master數(shù)據(jù)庫(kù)的端口號(hào)

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

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

        master_connect_retry=30;

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

         show slave status\G;
        \

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

        start slave;
        \

        在master機(jī)器上查看狀態(tài),可以看見slave的連接信息

        show processlist\G;
        \

        接下來我們測(cè)試一下主從復(fù)制的功能

        master 上原來的數(shù)據(jù)

        \

        這是我插入的記錄

        \

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

        \

        至此mysql原生支持的主從復(fù)制搭建完畢,當(dāng)然我們說mysql的主從復(fù)制

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

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL

        linuxcentos下mysql數(shù)據(jù)庫(kù)的主從復(fù)制環(huán)境搭建_MySQL:有兩臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器Master和slave,Master為主服務(wù)器,slave為從服務(wù)器,初始狀態(tài)時(shí),Master和slave中的數(shù)據(jù)信息相同,當(dāng)Master中的數(shù)據(jù)發(fā)生變化時(shí),slave也跟著發(fā)生相應(yīng)的變化,使得master和slave的數(shù)據(jù)信息同步,達(dá)到備份的目的。 原理圖如下:
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人成小说网站色| 亚洲国产视频久久| 国产成人1024精品免费| 亚洲福利精品一区二区三区| 国产偷国产偷亚洲高清在线 | 亚洲欧洲国产日韩精品| 中文字幕在线免费视频| 亚洲AV无码一区二区二三区软件| 你懂的网址免费国产| 99ri精品国产亚洲| 国产h视频在线观看免费| 亚洲色最新高清av网站| 国产真实伦在线视频免费观看| 青草青草视频2免费观看| 亚洲高清无码在线观看| a级毛片免费全部播放| 亚洲成年轻人电影网站www| 亚洲w码欧洲s码免费 | 亚洲精品乱码久久久久久蜜桃图片 | 成全高清在线观看免费| 久久亚洲AV成人无码软件| 成人看的午夜免费毛片| 美女免费视频一区二区三区| 中文亚洲AV片不卡在线观看| 久久成人无码国产免费播放| 亚洲AV成人一区二区三区在线看| 亚洲AV成人潮喷综合网| 你是我的城池营垒免费观看完整版| 亚洲美女aⅴ久久久91| 成熟女人牲交片免费观看视频| 免费无码AV一区二区| 亚洲男人都懂得羞羞网站| 日韩精品免费一区二区三区| av片在线观看永久免费| 亚洲欧洲国产精品久久| 九月婷婷亚洲综合在线| 91人人区免费区人人| 日韩在线观看视频免费| 亚洲精品资源在线| 亚洲AV蜜桃永久无码精品| **aaaaa毛片免费|