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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql数据库主从及主主复制配置演示

發(fā)布時間:2025/6/17 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql数据库主从及主主复制配置演示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

From :?http://www.cnblogs.com/tae44/p/4682810.html

實(shí)驗(yàn)系統(tǒng):CentOS 6.6_x86_64

實(shí)驗(yàn)前提:提前準(zhǔn)備好編譯環(huán)境,防火墻和selinux都關(guān)閉

實(shí)驗(yàn)說明:本實(shí)驗(yàn)共有2臺主機(jī),IP分配如拓?fù)?/p>

實(shí)驗(yàn)軟件:mariadb-10.0.20

實(shí)驗(yàn)拓?fù)?#xff1a;

    

一、安裝mysql

  1.編譯安裝mariadb:

tar xf mariadb-10.0.20-linux-x86_64.tar.gz -C /usr/local/ cd /usr/local/ ln -sv mariadb-10.0.20-linux-x86_64 mysql mkdir -pv /mydata/data useradd -r mysql chown -R mysql.mysql /mydata/data/ cd mysql/ chown -R root.mysql . scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ cp support-files/my-large.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on

  2.編輯配置文件:

vim /etc/my.cnf -------------------------------- datadir = /mydata/data //增加此行 -------------------------------- service mysqld start /usr/local/mysql/bin/mysql //連接測試

    

二、主從復(fù)制

  實(shí)驗(yàn)中我先讓19.43當(dāng)主服務(wù)器,19.48為從服務(wù)器。

  1.主服務(wù)器操作:

    (1)編輯my.cnf,啟用二進(jìn)制日志(如果定義到其他路徑,請給予其mysql權(quán)限):

log-bin=/mydata/data/mysql-bin

    (2)定義server-id:

server-id = 1

    (3)創(chuàng)建有復(fù)制權(quán)限的賬號:

/usr/local/mysql/bin/mysql ----------------------------------------- GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO slave@192.168.19.48 IDENTIFIED BY '123456'; //遵循最小權(quán)限原則 FLUSH PRIVILEGES;

    (4)記錄最后的二進(jìn)制日志信息,CHANGE MASTER時會用到:

SHOW MASTER LOGS;

    

  2.從服務(wù)器操作:

    (1)啟動中繼日志(如果定義到其他路徑,請給予其mysql權(quán)限):

relay_log=/mydata/data/relay-log

    (2)從服務(wù)器用中繼日志就足夠了,關(guān)閉二進(jìn)制日志,減少磁盤IO:

#log-bin=mysql-bin //將其注釋 #binlog_format=mixed

    (3)定義server-id:

server-id = 2 //不能與主服務(wù)器相同

    (4)配置CHANGE MASTER:

/usr/local/mysql/bin/mysql ----------------------------------------- CHANGE MASTER TO MASTER_HOST='192.168.19.43',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=326;
SHOW SLAVE STATUS\G //查看狀態(tài) *************************** 1. row ***************************Slave_IO_State: Master_Host: 192.168.19.43Master_User: slaveMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000002Read_Master_Log_Pos: 326Relay_Log_File: relay-log.000001Relay_Log_Pos: 4Relay_Master_Log_File: mysql-bin.000002Slave_IO_Running: NoSlave_SQL_Running: NoReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 326Relay_Log_Space: 248Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 0Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: NoGtid_IO_Pos: 1 row in set (0.00 sec)

    (5)啟動io thread以及sql thread:

START SLAVE;

    

  3.在主服務(wù)器創(chuàng)建數(shù)據(jù)庫,從服務(wù)器查看:

CREATE DATABASE jason; //主服務(wù)器創(chuàng)建數(shù)據(jù)庫
SHOW DATABASES; //從服務(wù)器查看

    

  4.如果主數(shù)據(jù)庫不是新建立的,而是使用過一段時間,且里面已經(jīng)有不少數(shù)據(jù)的情況下,需要先把主服務(wù)器數(shù)據(jù)導(dǎo)出,再導(dǎo)入到從服務(wù)器,然后根據(jù)上面的步驟進(jìn)行主從復(fù)制,這里將不再演示。

  導(dǎo)出數(shù)據(jù)庫命令參考:mysqldump --all-databases --lock-all-tables --master-data=2 >?name.sql

三、半同步復(fù)制

  1.什么是半同步復(fù)制?

    因?yàn)殚_啟這個功能之后,主服務(wù)器只等待多個從服務(wù)器中的指定的一臺從服務(wù)器復(fù)制成功,然后才進(jìn)行其他寫操作,使這個從服務(wù)器和主服務(wù)器上的數(shù)據(jù)完全同步,而并不管其他的從服務(wù)器。這在一定程度上就保證了我們數(shù)據(jù)的安全性。這個功能需要打由google貢獻(xiàn)的補(bǔ)丁,它是以插件的形式存在的。補(bǔ)丁存放的位置在:/usr/local/mysql/lib/plugin/

  2.主服務(wù)器打補(bǔ)丁:

/usr/local/mysql/bin/mysql --------------------------------------------- INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; SHOW GLOBAL VARIABLES LIKE '%semi%'; //查看狀態(tài)

    

  3.主服務(wù)器修改配置:

SET GLOBAL rpl_semi_sync_master_enabled=1; SET GLOBAL rpl_semi_sync_master_timeout=1000;

  4.從服務(wù)器打補(bǔ)丁:

/usr/local/mysql/bin/mysql --------------------------------------------- INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; SHOW GLOBAL VARIABLES LIKE '%semi%';

    

  5.從服務(wù)器修改配置:

SET GLOBAL rpl_semi_sync_slave_enabled=1;
STOP SLAVE;
START SLAVE;

  6.主服務(wù)器查看狀態(tài):

SHOW GLOBAL STATUS LIKE '%semi%';

    

四、主主復(fù)制

  1.由于剛才做了許多操作,為了不影響之后的實(shí)驗(yàn),我們先將數(shù)據(jù)庫進(jìn)行重置:

service mysqld stop rm -rf /mydata/data/*                                    //刪除數(shù)據(jù)庫文件 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/mydata/data/ //初始化mysql

  2.修改my.cnf:

    19.43上:

vim /etc/my.cnf ------------------------------------------- [mysqld] server-id=1 log-bin=/mydata/data/mysql1-bin //開啟二進(jìn)制日志 relay_log=/mydata/data/relay-log //開始中繼日志 auto-increment-increment = 2 //每次增長的數(shù)值 auto-increment-offset = 1 //開始的數(shù)值

    19.48上:

vim /etc/my.cnf ------------------------------------------- [mysqld] server-id=2 log-bin=/mydata/data/mysql2-bin relay_log=/mydata/data/relay-log auto-increment-increment = 2 auto-increment-offset = 2

  3.創(chuàng)建具有復(fù)制權(quán)限的用戶:

    19.43上:

service mysqld start /usr/local/mysql/bin/mysql ------------------------------------------ GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mmm@192.168.19.48 IDENTIFIED BY '123456'; FLUSH PRIVILEGES;

    19.48上:

service mysqld start /usr/local/mysql/bin/mysql ------------------------------------------ GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mmm@192.168.19.43 IDENTIFIED BY '123456'; FLUSH PRIVILEGES;

  4.查看二進(jìn)制位置:

    19.43上:

SHOW MASTER LOGS;

    

    19.48上使用同樣的命令:

    

  5.配置CHANGE MASTER:

    19.43上:

CHANGE MASTER TO MASTER_HOST='192.168.19.48',MASTER_USER='mmm',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql2-bin.000001',MASTER_LOG_POS=642; START SLAVE;

    19.48上:

CHANGE MASTER TO MASTER_HOST='192.168.19.43',MASTER_USER='mmm',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql1-bin.000001',MASTER_LOG_POS=642; START SLAVE;

  6.查看狀態(tài):

SHOW SLAVE STATUS\G

    ?

    

  之后的復(fù)制演示這里不再演示,請大家自行嘗試。至此,所有試驗(yàn)演示完畢,謝謝!

轉(zhuǎn)載于:https://www.cnblogs.com/Athrun/p/4691352.html

總結(jié)

以上是生活随笔為你收集整理的Mysql数据库主从及主主复制配置演示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。