Mysql多主一從數(shù)據(jù)備份的方法教程
概述
對任何一個數(shù)據(jù)庫的操作都自動應(yīng)用到另外一個數(shù)據(jù)庫,始終保持兩個數(shù)據(jù)庫中的數(shù)據(jù)一致。
這樣做有如下幾點好處:
- 可以做災(zāi)備,其中一個壞了可以切換到另一個。
- 可以做負(fù)載均衡,可以將請求分?jǐn)偟狡渲腥魏我慌_上,提高網(wǎng)站吞吐量。 對于異地?zé)醾?,尤其適合災(zāi)備。
MySQL 主從復(fù)制的方式
1 Master 數(shù)據(jù)庫操作的任何數(shù)據(jù)庫的時候,都會將操作記錄寫入到biglog日志文件當(dāng)中
2 Slave 數(shù)據(jù)庫通過網(wǎng)絡(luò)獲取到主數(shù)據(jù)庫的日志文件,寫入本地日志系統(tǒng) ,然后一條條的將數(shù)據(jù)庫事件在數(shù)據(jù)庫中完成
3 Slave 重做中繼日志中的事件,將 Master 上的改變反映到它自己的數(shù)據(jù)庫中,所以兩端的數(shù)據(jù)是完全一樣的。
環(huán)境
操作系統(tǒng):CentOS
MySQL版本:mysql-5.6.26 (主從兩者數(shù)據(jù)庫版本必須保持一致)
Master1 配置
1 開啟binlog日志功能
vim /etc/my.cnf
server-id=6 log-bin=mysql-bin
2 重啟mysql 登陸并授權(quán)
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址為slave服務(wù)器的ip地址
3 查看日志狀態(tài)
show master status;
Master2 配置
1 開啟binlog日志功能
vim /etc/my.cnf
server-id=8 log-bin=mysql-bin
2 重啟mysql 登陸并授權(quán)
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址為slave服務(wù)器的ip地址
3 查看日志狀態(tài)
show master status;
Slave 配置
1 修改配置文件 (注意 slave的默認(rèn)數(shù)據(jù)庫啟動的端口必須關(guān)閉 service mysql stop)
vim /etc/my.cnf
[mysqld] binlog-ignore-db=mysql binlog_format=mixed expire_logs_days=7 slave_skip_errors=1062 relay_log=mysql-relay-bin log_slave_updates=1 [mysqld_muliti] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=root password=123456 [mysqld6] port=3306 datadir=/home/mysql/data6 pid-file=/home/mysql/data6/mysql.pid socket=/home/mysql/data6/mysql.sock user=mysql server-id=7 [mysqld8] port=3307 datadir=/home/mysql/data8 pid-file=/home/mysql/data8/mysql.pid socket=/home/mysql/data8/mysql.sock user=mysql server-id=7
2 初始化生成目錄
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 & /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &
3 修改目錄權(quán)限
chown -R mysql /home/mysql/data6 chown -R mysql /home/mysql/data8
4 啟動服務(wù)
mysqld_multi --defaults-file=/etc/my.cnf start 6 mysqld_multi --defaults-file=/etc/my.cnf start 8
5 登錄測試(并分別做授權(quán))
mysql -P 3306 -S /home/mysql/data6/mysql.sock
mysql> change master to master_host='10.211.55.6', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120; mysql> start slave;
mysql -P 3307 -S /home/mysql/data8/mysql.sock
mysql> change master to master_host='10.211.55.8', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120; mysql> start slave;
ok 就這樣 完成了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
mysql 從 frm 文件恢復(fù) table 表結(jié)構(gòu)的3種方法【推薦】
這篇文章主要介紹了mysql 從 frm 文件恢復(fù) table 表結(jié)構(gòu)的3種方法 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引詳解
這篇文章主要給大家介紹了關(guān)于當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09MySQL系列教程小白數(shù)據(jù)庫基礎(chǔ)
這篇文章主要為大家介紹了MySQL系列中的數(shù)據(jù)庫基礎(chǔ),非常適合數(shù)據(jù)庫小白的入門基礎(chǔ)篇,詳細(xì)的講解了數(shù)據(jù)庫的基本概念以及基礎(chǔ)命令及操作示例,有需要的朋友可以借鑒參考下2021-10-10