Mysql數(shù)據(jù)庫實現(xiàn)主從備份

為測試主從備份效果使用CentOS7系統(tǒng)鏡像的VM直接安裝mysql以下為實操記錄
CentOS7 VM使用:http://www.itdecent.cn/p/cecf6cc04f46

一、安裝mysql數(shù)據(jù)庫

參考:http://www.itdecent.cn/p/276d59cbc529

1.創(chuàng)建mysql用戶和用戶組

groupadd mysql      #添加用戶組
useradd -r -g mysql mysql    #添加用戶

2.下載安裝包

cd /data
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

3.解壓安裝包

tar -tzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql   #修改文件名
mkdir /data/mysql/data   #創(chuàng)建data目錄

4.修改安裝目錄所屬用戶組及權(quán)限

chown -R mysql:mysql /data/mysql
chmod -R 755 /data/mysql

5.安裝并初始化

cd /data/mysql/bin
./mysqld --initialize --user=mysql --datadir=/data/mysql/data --basedir=/data/mysql

錯誤提示:

./mysqld: error while loading shared libraries:libaio.so.l:connot poen shared object file:No such file or directory

解決方案:

yum install  libaio-devel.x86_64   #缺少必要的數(shù)據(jù)庫依賴,安裝一下

[Tip]注意初始化日志結(jié)尾的隨機(jī)初始密碼 首次登陸需要用到 忘了也沒事在下一步配置文件中添加skip-grant-tables 可以跳過密碼驗證(別問我怎么知道的-_-)

6.修改mysql配置文件

vi /etc/my.cnf

原有內(nèi)容不知道干啥用的我全刪了,替換成新的保存

[mysqld]
datadir=/data/mysql/data
basedir=/data/mysql
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1

7.啟動

ln -s /data/mysql/support-files/mysql.server /etc/init.d/mysql  #添加軟連接
service mysql start  
ps -ef|grep mysql  #不出意外應(yīng)該顯示mysql進(jìn)程了
mysql>mysql -uroot  #登錄mysql 如果添加了跳過驗證就不需要輸入密碼了 不然加上(-p上述的初始密碼)
mysql>use mysql;   #選擇mysql數(shù)據(jù)庫
mysql>update user set host='%' ,authentication_string = password("123456") where user='root'; #開啟遠(yuǎn)程連接并修改密碼
mysql>flush privileges;  #刷新配置進(jìn)內(nèi)存 否則需要重啟起效

如果防火墻沒有禁止3306端口的話現(xiàn)在應(yīng)該可以用圖形化管理工具遠(yuǎn)程登錄數(shù)據(jù)庫了

二、克隆虛擬機(jī)鏡像

參考:https://jingyan.baidu.com/article/da1091fb4d625b027849d684.html

使用VM進(jìn)行虛擬機(jī)克隆作為mysql備份數(shù)據(jù)庫服務(wù)器,步驟簡單參考上方百度百科。

三、進(jìn)行主從配置

參考:https://www.cnblogs.com/jianmingyuan/p/10903682.html

測試環(huán)境:

A服務(wù)器(主服務(wù)器Master):192.168.216.127

B服務(wù)器(從服務(wù)器Slave):192.168.216.128

主從服務(wù)器的Mysql版本皆為5.5.24

[Tip]主從庫都創(chuàng)建數(shù)據(jù)庫test并創(chuàng)建一個用于測試的數(shù)據(jù)表,節(jié)省掉備份步驟。

1.主庫開啟二進(jìn)制備份功能

1.1添加my.cnf配置內(nèi)容并重啟mysql

server-id = 1        //唯一id
log-bin=mysql-bin                 //其中這兩行是本來就有的,可以不用動,添加下面兩行即可.指定日志文件
binlog-do-db = test     //記錄日志的數(shù)據(jù)庫
binlog-ignore-db = mysql    //不記錄日志的數(shù)據(jù)庫

1.2查詢主庫狀態(tài)并記錄 日志文件file,和當(dāng)前位置position

2.主庫增加同步賬號,并開放repliction權(quán)限

mysql>grant replication slave on *.* to 'replicate'@'192.168.216.128' identified by '123456';  #創(chuàng)建同步用戶replicate
mysql>flush privileges; 

4.從庫設(shè)置主從同步

4.1添加my.cnf配置內(nèi)容并重啟mysql

server-id = 2
log-bin=mysql-bin
binlog_format = mixed   #binlog日志格式,mysql默認(rèn)采用statement,建議使用mixed
expire_logs_days = 30                           #binlog過期清理時間
max_binlog_size = 1000m                    #binlog每個日志文件大小
binlog_cache_size = 4m                        #binlog緩存大小
max_binlog_cache_size= 512m              #最大binlog緩存大
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema

4.2用change mster 語句指定同步位置

mysql>stop slave;          //先停止slave服務(wù)線程,這個是很重要的,如果不這樣做會造成以下操作不成功。
mysql>change master to
>master_host='192.168.216.127',master_user='replicate',master_password='123456',
>master_log_file=' mysql-bin.000003 ',master_log_pos=154;
mysql>start slave;

4.3查詢從庫狀態(tài)


如果Slave_IO_Running=Yes 且 Slave_SQL_Running=Yes則表示主從同步配置成功

若Slave_IO_Running=No 下面Last_IO_Error提示UUID沖突則是因為鏡像拷貝導(dǎo)致的UUID重復(fù)
解決方案:

cd /data/mysql/data
rm -rf auto.cnf
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容