MySQL主從(MS)、主主(MM)複製

安裝MySQL 5.7

若是安裝過mysql,刪除node

停掉mysql進程:mysql

pkill -9 mysqld
複製代碼

刪除mysql:sql

rpm -qa|grep -i mysql
yum -y remove
mysql-community-client-5.6.38-2.el7.x86_64
複製代碼

依次卸載 直到沒有vim

yum安裝bash

cd /usr/local/src/

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 

rpm -ivh mysql57-community-release-el7-8.noarch.rpm 

yum -y install mysql-server
複製代碼

默認配置文件路徑:session

  • 配置文件:/etc/my.cnf
  • 日誌文件:/var/log/mysqld.log
  • 服務啓動腳本:/usr/lib/systemd/system/mysqld.service
  • socket文件:/var/run/mysqld/mysqld.pid

啓動mysqlsocket

service mysqld restart
複製代碼

查看臨時密碼:ui

$ grep "password" /var/log/mysqld.log
臨時密碼信息以下:
[Note] A temporary password is generated for root@localhost: M:sd6OoNZkz1
複製代碼

用臨時密碼登陸:spa

mysql -uroot -p
複製代碼

修改密碼(密碼8位以上,大小寫字母+數字+特殊符號):rest

set password for root@localhost = password('Node2018!');
複製代碼

Navicat鏈接mysql

登陸mysql,查看現有的user:

mysql -uroot -pNode2018!
mysql> select host,user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.01 sec)
複製代碼

建立一個新的帳號:

CREATE USER 'root'@'%' IDENTIFIED BY 'Node2018!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
複製代碼

刷新權限:

FLUSH PRIVILEGES;
複製代碼

主從複製配置

編輯mysql的配置文件: vim /etc/my.cnf

192.168.7.2:

log-bin=mysql-bin #binlog文件的前綴,能夠修改
binlog-format=ROW #選擇row模式 
server_id=2 #必須,不一樣mysql不能重複
log_slave_updates=1 #開啓之後從庫會記錄主庫同步的binlog。
auto_increment_increment=2 #步進值,通常有n臺主MySQL就填n。
auto_increment_offset=1 #起始值。通常填第n臺主MySQL。
複製代碼
192.168.7.3:

log-bin=mysql-bin #binlog文件的前綴,能夠修改
binlog-format=ROW #選擇row模式 
server_id=3 #必須,不一樣mysql不能重複
log_slave_updates=1 #開啓之後從庫會記錄主庫同步的binlog。
auto_increment_increment=2 #步進值,通常有n臺主MySQL就填n。
auto_increment_offset=1 #起始值。通常填第n臺主MySQL。
複製代碼
192.168.7.4:

log-bin=mysql-bin #binlog文件的前綴,能夠修改
binlog-format=ROW #選擇row模式 
server_id=4 #必須,不一樣mysql不能重複
log_slave_updates=1 #開啓之後從庫會記錄主庫同步的binlog。
複製代碼

分別重啓192.168.7.二、192.168.7.三、192.168.7.4上的mysql:

service mysqld restart
複製代碼

在192.168.7.2新建複製帳號:

CREATE USER user73 IDENTIFIED BY 'Node2018!';
GRANT ALL PRIVILEGES ON *.* TO 'user73'@'%' ; 
FLUSH PRIVILEGES;

CREATE USER user74 IDENTIFIED BY 'Node2018!';
GRANT ALL PRIVILEGES ON *.* TO 'user74'@'%' ; 
FLUSH PRIVILEGES;
複製代碼

在192.168.7.3上配置複製的master信息:

CHANGE MASTER TO
MASTER_HOST='192.168.7.2',
MASTER_USER='user73',
MASTER_PASSWORD='Node2018!',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=2340;
複製代碼

在192.168.7.4上配置複製的master信息:

CHANGE MASTER TO
MASTER_HOST='192.168.7.2',
MASTER_USER='user74',
MASTER_PASSWORD='Node2018!',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=2340;
複製代碼

開啓複製並查看複製狀態:

START SLAVE;
SHOW SLAVE STATUS\G;
複製代碼

主主複製配置

7.2 和7.5 配置主主複製

配置node5的my.cnf:

log-bin=mysql-bin #binlog文件的前綴,能夠修改
binlog-format=ROW #選擇row模式 
server_id=5 #必須,不一樣mysql不能重複
log_slave_updates=1 #開啓之後從庫會記錄主庫同步的binlog。
auto_increment_increment=2 #步進值,通常有n臺主MySQL就填n。
auto_increment_offset=2 #起始值。通常填第n臺主MySQL。
複製代碼

在7.2上建立一個7.5上能訪問的帳號:

CREATE USER user75 IDENTIFIED BY 'Node2018!';
GRANT ALL PRIVILEGES ON *.* TO 'user75'@'%' ; 
FLUSH PRIVILEGES;
複製代碼

在7.5上建立一個7.2上能訪問的帳號:

CREATE USER user72 IDENTIFIED BY 'Node2018!';
GRANT ALL PRIVILEGES ON *.* TO 'user72'@'%' ; 
FLUSH PRIVILEGES;
複製代碼

互相change master:

CHANGE MASTER TO
MASTER_HOST='192.168.7.5',
MASTER_USER='user72',
MASTER_PASSWORD='Node2018!',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;


CHANGE MASTER TO
MASTER_HOST='192.168.7.2',
MASTER_USER='user75',
MASTER_PASSWORD='Node2018!',
MASTER_LOG_FILE='mysql-bin.000005',
MASTER_LOG_POS=1761;
複製代碼

本文到此結束!喜歡的朋友點點贊和關注,感謝支持!

相關文章
相關標籤/搜索