Mysql羣集服務器之主從安裝
Master:10.206.35.12
Slave:10.206.35.8
Centos7安裝Mysql5.7
1-因爲CentOS 的yum源中沒有mysql,需到mysql的官網下載yum repo配置文件
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2-進行repo的安裝
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
執行完成後會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo執行完成後會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repopython
3-yum命令便可完成安裝
yum install mysql-server -y
4-啓動Mysql
systemctl start mysqld
5-獲取安裝時的臨時密碼: vlfhh)Na)5iU
grep 'temporary password' /var/log/mysqld.log
假若沒有:
(1)刪除原來安裝過的mysql殘留的數據
rm -rf /var/lib/mysql
2)再啓動mysql
6-登陸
mysql -u root -p
7-修改密碼
set password=password("silence2@T");
8-Master配置
vi /etc/my.cnf添加如下內容
server-id=1#設置主服務器的ID,不能重複
innodb_flush_log_at_trx_commit=2#
log-bin=mysql-bin-1#開啓binlog日誌同步功能
binlog-do-db=test#同步test庫
重啓MySQL
systemctl restart mysqld
systemctl status mysqld
登陸MYSQL
mysql -u root -p
grant replication slave on . to 'mark'@'10.206.35.%' identified by 'silence2@T';
grant replication slave on . to 'mark'@'192.168.0.%' identified by 'silence2@T';
受權給從數據庫服務器用戶名mark,密碼123456,192.168.56.%使用通配符表示該網段下全部服務器都可使用
查看主數據庫狀態
show master status;
9-Slave數據庫配置
vi /etc/my.cnf
server-id=2
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-2
重啓MySQL服務
systemctl restart mysqld
登陸MySQL數據庫
mysql -u root -p
語句中的master_log_file、master_log_pos與上圖一致。
change master to master_host='10.206.35.12', master_user='mark' ,master_password='silence2@T', master_log_file='mysql-bin-5.000001' ,master_log_pos=448;
開啓從庫 (stop slave:關閉從庫)
start slave;
Slave_IO_Running,Slave_SQL_Running 都爲Yes的時候表示配置成功
show slave status\G
在MASTER上建立數據庫,測試同步
create database mysql_db_test charset=utf8;
show databases;
use mysql_db_tesb
create table t0 (id varchar(20),name varchar(20));
show tables;
insert into t0 values ("001","wugk1");
insert into t0 values ("002","wugk2");
select * from t0;mysql
MySQL主從同步排錯思路
1-忽略錯誤,繼續同步;中止Master寫入
flush tables with read lock;
Slave端中止I/O及SQL線程,跳過同步錯誤的SQL一次,啓動同步
stop slave;
set global sql_slave_skip_counter = 1;
start slave;sql
2-從新作主從同步,使用數據據徹底同步
Master將數據庫設置爲全局讀鎖,不準寫入
flush tables with read lock;
Master端基於mysqldump、xtraackup工具對數據進行完整備份,也能夠用shell
腳本或python實理定時備份,備份成功後,將完整的數據導入至從庫,從新配置主從
關係,當slave端的I/0線程\SQL線程均爲YES以後,將MASTER讀寫解開:
unlock tables;shell