您好,登錄后才能下訂單哦!
MySQL內建的復制功能是構建大型,高性能應用程序的基礎。將MySQL的數據分布到多個系統上去,這種分布的機制,是通過將mysql的某一臺主機的數據復制到其它主機(slave)上,并重新執行一遍來實現。
復制過程中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。主服務器將更新寫入二進制日志文件,并維護文件的一個索引以跟蹤日志循壞,這些日志可以記錄發送到從服務器的更新。當一個從服務器
連接主服務器時,它通知主服務器從服務器在日志中讀取的最后一次成功更新的位置。從服務器接收從那時起發生的任何更新,然后封鎖并等待主服務器通知的更新。
需注意的是:
在進行mysql復制時,所有對復制中的表的更新必須在主服務器上進行。否則必須要小心,以避免用戶對主服器上的表進行更新與對從服務器上的表所進行更新之間的沖突。
源碼安裝AliSQL-AliSQL-5.6.32-9
可以在我的網盤下載包
鏈接:https://pan.baidu.com/s/1FDmGV2zVLI9NxfdpjVqK4g
提取碼:tpuy
復制這段內容后打開百度網盤,操作更方便哦:
主從間的數據庫不是實時同步,就算網絡連接正常,也存在瞬間主從數據不一致的情況。
如果需要多主庫的話,可以用環形配置,這樣任意一個節點的修改都可以同步到所有節點所以也需要ntp(時間同步)
源碼安裝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的組
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
1、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;
2、slave從庫配置
vim /data/server/mysql/my.cnf
重啟mysql數據庫
cd /data/server/mysql/support-files
./mysql.server start
進入到mysql bin目錄進入到交互環境
cd /data/server/mysql/bin
./mysql -u root -p
檢查Slava從數據庫的各項參數
配置復制的參數,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;
啟動從庫的同步開關,測試主從復制的情況
查看復制狀態 看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
那么就成功了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。