AliSQL主從複製

MySQL內建的複製功能是構建大型,高性能應用程序的基礎。將MySQL的數據分佈到多個系統上去,這種分佈的機制,是經過將mysql的某一臺主機的數據複製到其它主機(slave)上,並從新執行一遍來實現。mysql

複製過程當中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。主服務器將更新寫入二進制日誌文件,並維護文件的一個索引以跟蹤日誌循壞,這些日誌能夠記錄發送到從服務器的更新。當一個從服務器c++

鏈接主服務器時,它通知主服務器從服務器在日誌中讀取的最後一次成功更新的位置。從服務器接收從那時起發生的任何更新,而後封鎖並等待主服務器通知的更新。git

需注意的是:sql

在進行mysql複製時,全部對複製中的表的更新必須在主服務器上進行。不然必需要當心,以免用戶對主服器上的表進行更新與對從服務器上的表所進行更新之間的衝突。數據庫

源碼安裝AliSQL-AliSQL-5.6.32-9
能夠在個人網盤下載包
連接:https://pan.baidu.com/s/1FDmGV2zVLI9NxfdpjVqK4g
提取碼:tpuy
複製這段內容後打開百度網盤,操做更方便哦:vim

主從間的數據庫不是實時同步,就算網絡鏈接正常,也存在瞬間主從數據不一致的狀況。
若是須要多主庫的話,能夠用環形配置,這樣任意一個節點的修改均可以同步到全部節點因此也須要ntp(時間同步)centos

源碼安裝AliSQL
接下來咱們源碼安裝AliSQL
下載依賴包 解壓服務器

wget http://repo.openfusion.net/centos7-x86_64//perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm
rpm -ivh perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm
yum -y install cmake bison git ncurses-devel gcc gcc-c++

解壓AliSQL網絡

unzip AliSQL-AliSQL-5.6.32-9.zip

建立一個mysql的組ide

groupadd mysql
useradd -g mysql mysql

建立mysql目錄還有data目錄

mkdir -p /data/server/mysql/data
cd /usr/local/src/AliSQL-AliSQL-5.6.32-9

編譯指定路徑爲data server 目錄下的mysql

cmake -DCMAKE_INSTALL_PREFIX=/data/server/mysql -DMYSQL_UNIX_ADDR=/data/server/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/server/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1
make && make install

注意修改mysql目錄的屬主和屬組

chown -R mysql:mysql /data/server/mysql/data/
chown -R mysql:mysql /data/server/mysql/
cd /data/server/mysql

初始化數據庫

scripts/mysql_install_db --defaults-file=./my.cnf --user=mysql

修改生成的文件屬主和屬組

chown -R mysql:mysql my.cnf

而後開啓mysql服務

cd /data/server/mysql/support-files
./mysql.server start

開啓以後進入交互環境

cd /data/server/mysql/bin
./mysql -u root -p

這裏咱們準備兩臺機器所有安裝AliSQL-AliSQL-5.6.32-9安裝到/data/server下
主庫機器ip:192.168.124.107 從庫機器ip:192.168.124.108
master主庫配置

vim  /data/server/

#修改內容
#解釋:server-id服務的惟一標識(主從之間都必須不一樣);log-bin啓動二進制日誌名稱爲mysql-bin

【mysqld】
server-id=1
log-bin=mysql-bin

保存退出

cd /data/server/mysql/support-files
./mysql.server start

一、master主庫添加從庫帳號
進入到bin目錄啓動mysql 進入到交互環境

cd /data/server/mysql/bin
./mysql -u root -p

新建用於主從同步的用戶chaoge,容許登陸的從庫是'192.168.124.108'

create user 'chaoge'@'192.168.124.108' identified by 'redhat';

給從庫帳號受權,說明給chaoge從庫複製的權限,在192.168.124.108機器上覆制

grant replication slave on *.* to 'chaoge'@'192.168.124.108';

檢查主庫建立的複製帳號

select user,host from mysql.user;

檢查受權帳號的權限

show grants for chaoge@'192.168.124.108';

檢查主庫的狀態

show master status;

二、slave從庫配置

vim /data/server/mysql/my.cnf

AliSQL主從複製

重啓mysql數據庫

cd /data/server/mysql/support-files
./mysql.server start

進入到mysql bin目錄進入到交互環境

cd /data/server/mysql/bin
./mysql -u root -p

AliSQL主從複製

檢查Slava從數據庫的各項參數

AliSQL主從複製

配置複製的參數,Slave從庫鏈接Master主庫的配置

mysql > change master to master_host='192.168.124.108',
master_user='chaoge',
master_password='redhat',
master_log_file='mysql-bin.000001',
master_log_pos=120;

啓動從庫的同步開關,測試主從複製的狀況

AliSQL主從複製

查看複製狀態 看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
那麼就成功了

AliSQL主從複製

相關文章
相關標籤/搜索