一、主從服務器的IP地址
Master IP:172.16.1.1
Salve IP:172.16.1.64
二、安裝mysql並配置好Master與Slave
1、安裝musql服務器
#yum install mysql-server -y
2、創建MySQL數據存放位置
mkdir /mydata/data -pv
mkdir /mydata/binlogs -pv
mkdir /mydata/reaylogs -pv (從服務器上創建)
3、修改目錄的屬主、屬組
chown -R mysql.mysql /mydata/*
Mster Server:
#vim /etc/mysql/my.cnf
datadir = /mydata/data
log-bin=/mydata/binlogs/master-bin
Salve Server:
vim /etc/mysql/my.cnf
datadir = /mydata/data
relay-log = /mydata/reaylogs/relay-log
#log-bin=mysql-bin
#binlog_format=mixed
server-id = 11
***主從服務器的Server-id的值不同
三、爲Slave創建連接Master的賬號:
MariaDB [(none)]> grant replication slave, replication client on *.* to repluser@'172.16.%.%' identified by 'mageedu';
MariaDB [(none)]> flush privileges;
查看主節點的status信息:
MariaDB [(none)]> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000007 | 245 | | |
+-------------------+----------+--------------+------------------+
四、在Salev上連接Master:
1、連接主服務器時如果報:
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.1.1',MASTER_USER='repluser',MASTER_PASSWORD='mageedu',MASTER_LOG_FILE='master-log.000007',MASTER_LOG_POS=245;
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MariaDB error log
解決方法:
MariaDB [(none)]> reset slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.1.1',MASTER_USER='repluser',MASTER_PASSWORD='mageedu',MASTER_LOG_FILE='master-log.000007',MASTER_LOG_POS=245;
查看從節點狀態:
MariaDB [(none)]> show slave status\G
2、啓動IO_THREAD、SQL_THREAD線程:
MariaDB [(none)]> START SLAVE IO_THREAD;
MariaDB [(none)]> START SLAVE SQL_THREAD;
或者使用
MariaDB [(none)]>START SLAVE;
3、再次查看從節點狀態:
MariaDB [(none)]> SHOW SLAVE STATUS\G
對比啓動SLAVE前後的區別
在主節點上創建數據庫
MariaDB [(none)]>create database NAME;
在從節點查看:
MariaDB [(none)]>show databases;
#################################################################
###############補充部分############################################
1、停止從節點複製功能方法:
MariaDB [(none)]> stop slave;
2、如從服務器中途加入,則需要從Master導入數據
在Master上:#mysqldump --all-databases --lock-all-tables --routines --triggers --master-data=2 --flush-logs > /tmp/all.sql
在備份的數據導入到Slave上:#scp /tmp/all/sql [email protected]:/tmp
導入備份文件後再Slave上進行如下操作:
#mysql < /tmp/all.sql
3、如何限制從服務器只讀?
MariaDB [mysql]> SET GLOBAL read_only = 1;
*************************
[mysqld]
read_only = 1
4、阻止所有用戶執行寫操作:
MariaDB [mysql]> flush tables with read lock;
5、如何保證主從複製時的事務安全?
前提:mysql對二進制日誌事件數據會有緩衝;
在master上設置如下參數:
sync_binlog = 1