linux 自动配置 mysql数据库,Linux下配置mysql数据库主从自动备份
當網站內容越來越多的時候,數據庫也變得越來越大了。如果不小心誤刪了,或者被攻擊了,那就什么都沒有了,一切歸零。到現在博主也認識到了數據庫的重要性,于是決定研究研究數據庫的自動備份。如果你是土豪那可以直接買各種云服務商的數據庫,自帶容災備份的,安全性比較好。
本文僅討論數據庫放在本地的情況,備份方式為主從:即一臺服務器作為主服務器,另外一臺服務器作為備份服務器,當主服務器故障時,可以通過備份服務器來接管/恢復。
先來看看數據庫主備備份的原理:
MySQL主從又叫做Replication、AB復制。簡單講就是A和B兩臺機器做主從后,在A上寫數據,另外一臺B也會跟著寫數據,兩者數據實時同步的
MySQL主從是基于binlog的,主上須開啟binlog才能進行主從。 主從過程大致有3個步驟
1)主將更改操作記錄到binlog里
2)從將主的binlog事件(sql語句)同步到從本機上并記錄在relaylog里
3)從根據relaylog里面的sql語句按順序執行
主上有一個log dump線程,用來和從的I/O線程傳遞binlog
從上有兩個線程,其中I/O線程用來同步主的binlog并生成relaylog,另外一個SQL線程用來把relaylog里面的sql語句執行一遍
兩種情況:一種是做備份用,一種是作為讀用
簡單的說就是master將數據庫的改變寫入二進制日志,slave同步這些二進制日志,并根據這些二進制日志進行數據操作。
環境介紹:
本次配置的環境為:centos7,使用LNMP1.4安裝的Mysql5.5,主服務器為AWS服務器(下面簡稱主服務器),從服務器為京東云服務器(下面簡稱從服務器),現在需要將主服務器中名為img的數據庫做主從同步,自動同步到從服務器上。
準備工具:xshell
一、復制數據庫
1、首先要將主服務器的數據庫復制到從服務器中。
用xshell連接主服務器,導出數據庫:
mysqldump -uroot -p img >/root/img.sql
---輸入數據庫密碼---
然后ls看下,可以看到一個 img.sql的文件。
2、用xshell連接從服務器,使用sftp命令遠程到主服務器(有提示輸入yes):
sftp root@主服務器IP地址
---輸入ssh密碼---
cd /root
然后ls看下,可以看到主服務器的目錄,里面有個img.sql的文件,執行:
get img.sql
這樣數據庫文件就被復制到從服務器上了。 exit 退出sftp。
3、接下來在從服務器上建立一個名為img的數據庫,排序規則設為uft8
mysql -uroot -p
---輸入數據庫密碼---
create database img;
use img;
set names utf8;
source img.sql
這樣就成功導入了,exit退出回到linux命令行。
二、主服務器配置
1、切回主服務器,用vim 編輯 /etc下的my.cnf,如圖
這里主要配置的是server-id和log-bin。server-id用于區分不同主機上的數據庫,log-bin是二進制文件的名字(可以隨意命名)。同時,為了保證只同步需要的數據庫,我們需要加上:
binlog-do-db=img
binlog-ignore-db=mysql
配置完成如圖:
然后 :wq 保存退出,重啟mysql:
service mysql restart
2、連接數據庫進行如下操作:
mysql -uroot -p img
---輸入數據庫密碼---
#以下為修改數據庫連接權限
grant all privileges on *.* to 'root'@'%' identified by '自定義密碼';
flush privileges;
#下面為顯示bin-log文件名和位置
show master status;
執行完最后一條后我們可以看到:
記下紅框處的文件名和數字。
三、從服務器配置
1、連接到從服務器,用vim修改/etc下的my.cnf文件,把server-id改為2。
重啟mysql服務:
service mysql restart
2、連接數據庫,配置從數據庫:
mysql -uroot -p
---輸入數據庫密碼---
stop slave;
change master to
master_user='root',
master_password='你設置的自定義密碼',
master_host='主服務器地址',
master_log_file='mysql-bin.000011', #記下的上圖紅框的文件名
master_log_pos=255; #記下的上圖紅框的位置
start slave;
show slave status\G #查看是否安裝成功
如圖,這兩個是YES就成功了
四、其他說明
現在只要主服務器上的數據庫有變動,從服務器上也會時時變動,達到了數據庫異地容災備份的功能。如果需要多服務器備份,那么可以把多個服務器中my.cnf中的server_id修改為不同,并按以上教程重新配置一遍,每個服務器的數據庫可做主服務器也可以做從服務器。
如要同步多個數據庫,可在主服務器的my.cnf 中,添加多條 binlog-do-db,指向多個數據庫。
總結
以上是生活随笔為你收集整理的linux 自动配置 mysql数据库,Linux下配置mysql数据库主从自动备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓抓包工具 linux,Android
- 下一篇: Linux中字符设备注册方式,3.4.