欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL主從同步設(shè)置中主服務(wù)器二進(jìn)制日志無法開啟的問題

 更新時(shí)間:2023年12月11日 09:23:00   作者:xzsfg6825  
這篇文章主要介紹了MySQL主從同步設(shè)置中主服務(wù)器二進(jìn)制日志無法開啟的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

最近正在學(xué)習(xí)使用MySQL數(shù)據(jù)庫,欲實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的同步,在設(shè)置主服務(wù)器和從服務(wù)器的過程中出現(xiàn)很多問題。

看了網(wǎng)上很多教程,發(fā)現(xiàn)大多教程里面有一個(gè)問題,也不知道是我的數(shù)據(jù)庫版本導(dǎo)致的問題還是使用mysql5.6的人都有這個(gè)問題。

以下是我的操作:

1、操作條件配置

主服務(wù)器:

(1)系統(tǒng):windows 7

(2)數(shù)據(jù)庫:mysql 5.6

從服務(wù)器(虛擬機(jī)):

(1)windows 7

(2)數(shù)據(jù)庫:mysql 5.6

2、具體操作(如果有navicat會很簡單)

(1)在主服務(wù)器上建立需同步的數(shù)據(jù)庫

create database test; 

(2)在該數(shù)據(jù)庫下建立兩張表:

CREATE TABLE `backup_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8 NOT NULL,
  `sex` varchar(2) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
CREATE TABLE `user` (
  `User_ID` int(50) NOT NULL,
  `User_Name` char(100) DEFAULT NULL,
  PRIMARY KEY (`User_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(3)在從服務(wù)器上建立相同的數(shù)據(jù)庫和表;

(4)由于同步是基于日志的,所以要確保主服務(wù)器二進(jìn)制日志已開啟。

在主服務(wù)器mysql執(zhí)行查詢:show variables like '%log_bin%'; 可以看到log-bin是關(guān)閉的

(5)問題就出在這一步,大多數(shù)教程都是提示“在主服務(wù)器上mysql安裝目錄下有個(gè)配置文件my.ini,在[mysqld]下更改log-bin=mysql-bin”,但我的mysql5.6的安裝根目錄下只有my-default.ini,于是我誤以為就是在這個(gè)文件里面更改,但是更改之后,無論如何重啟服務(wù),查詢log-bin始終是OFF,于是在找了很多教程之后,發(fā)現(xiàn)了mysql的另一個(gè)數(shù)據(jù)存儲的路徑,我嘗試的找到了mysql的另一個(gè)保存數(shù)據(jù)的目錄C:\ProgramData\MySQL,找到了my.ini,于是在這個(gè)文件里進(jìn)行了更改:

(6)修改之后,重啟服務(wù)器,在進(jìn)行查詢show variables like '%log_bin%'; 終于解決了這個(gè)煩了我一天的問題:

(7)同理,從服務(wù)器的server-id設(shè)置成2,且同樣要在目錄 C:\ProgramData\MySQL中找到my.ini文件打開進(jìn)行設(shè)置 (ProgramData文件夾可能是隱藏的,直接輸入地址欄就能找到),后面的設(shè)置可直接寫在server-id后面,同樣是在該目錄下的my.ini中

replicate-do-db=test                                         #要同步的數(shù)據(jù)庫
replicate-do-table=test.bakeup_table           #要同步的表,改成自己的數(shù)據(jù)庫和表

replicate-do-table=test.user                            #要同步的第二個(gè)表

(8)然后在主服務(wù)器數(shù)據(jù)庫上創(chuàng)建一個(gè)用于同步數(shù)據(jù)的用戶,使用navicat很簡單,用戶名和密碼自行設(shè)置,主機(jī)設(shè)置成%,然后執(zhí)行g(shù)rant replication slave on *.* to 'testuser'@'%';

(9)設(shè)置好后,在navicat的命令行中執(zhí)行 show master status;顯示出正確結(jié)果,終于那個(gè)之前一直是 “ empty set ” 的問題解決了,至此主機(jī)上的都設(shè)置好了。

3、從數(shù)據(jù)庫中的設(shè)置

(1)配置尋找主服務(wù)器如下圖,然后啟動從服務(wù)器,輸入start slave;即可

CHANGE MASTER TO
MASTER_HOST='主服務(wù)器ip',
MASTER_USER='testuser',              #新建的用戶
MASTER_PASSWORD='yanwei',     #我的用戶密碼
MASTER_LOG_FILE='mysql-bin.000002',             #上圖查詢出的同步文件
MASTER_LOG_POS=120;                             #上圖查詢出的同步點(diǎn)(即:position下的值) 

(2)檢查配置結(jié)果,在從服務(wù)器上輸入:show slave status;可以看到從服務(wù)器的狀態(tài),已經(jīng)開始準(zhǔn)備接受數(shù)據(jù)了。

至此,主從復(fù)制的所有設(shè)置都已設(shè)置完成。接下來就是測試數(shù)據(jù)的同步效果了。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論