官網(wǎng)教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
1. 關(guān)閉防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2. 下載MySQL Yum Repository
3. 安裝MySQL服務(wù)
安裝倉庫: yum localinstall mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server
4. 啟動MySQL服務(wù)
sudo service mysqld start
sudo service mysqld status
5. 獲取root密碼
sudo grep 'temporary password' /var/log/mysqld.log
6. 登錄修改root密碼
mysql -uroot -p
# 輸入上面獲取的密碼
# WITH mysql_native_password 使用歷史密碼認證插件 方便客戶端登錄增热,新的認證插件是caching_sha2_password會導致如果客戶端版本過低鏈接不上
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root2018@';
7. 集群配置:my.conf 文件修改
vim /etc/my.cnf
# 添加服務(wù)ID籽腕,bin log配置烙肺,MySQL8 默認是開啟bin log的
server-id=1 #服務(wù)器 id
log-bin=mysql-bin #二進制文件存放路徑
# esc 退出編輯模式税稼,shift+: 輸入wq 保存退出
# 重啟MySQL服務(wù)
service mysqld restart
8. 創(chuàng)建master 主從同步用戶
# 創(chuàng)建用戶
CREATE USER 'zmhslave'@'%' IDENTIFIED WITH mysql_native_password BY 'Root2018@';
# 賦予權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'zmhslave'@'%';
# 生效 flush privileges 命令本質(zhì)上的作用是將當前user和privilige表中的用戶信息/權(quán)限設(shè)置從mysql庫(MySQL數(shù)據(jù)庫的內(nèi)置庫)中提取到內(nèi)存里
flush privileges;
# 顯示當前master狀態(tài) 跺株, file 和 position 從庫配置使用
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 1605 | | | |
+------------------+----------+--------------+------------------+-------------------+
master 到此配置完畢
9. 從庫 安裝
重復1-6步安裝MySQL服務(wù)并登陸修改密碼
10. 從庫my.conf 配置
vim /etc/my.cnf
server-id=2 #服務(wù)器 id 保證唯一性
11. 設(shè)置master
# 注意主master關(guān)閉防火墻或者開放3306端口
CHANGE MASTER TO MASTER_HOST='10.211.55.9', MASTER_USER='zmhslave', MASTER_PASSWORD='Root2018@',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1605;
12. 啟動 slave
start slave
# 停止 stop slave
# 重置 reset slave
13. 查看slave狀態(tài)
show slave status\G
# 表示啟動成功
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
# 參數(shù)詳解:http://www.reibang.com/p/3c4d7c6c6205
14. 可以去master測試了
# 比如在master創(chuàng)建個用戶以供遠程鏈接使用
# 創(chuàng)建用戶
CREATE USER 'minghui'@'%' IDENTIFIED WITH mysql_native_password BY 'Root2018@';
# 設(shè)置所有權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'minghui'@'%';
# 授權(quán)基本的查詢修改權(quán)限空繁,按需求設(shè)置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'minghui'@'%';
# 從庫也會自動創(chuàng)建用戶把敞,并設(shè)置權(quán)限
15. 搭建主主復制模式(更改從節(jié)點也為主節(jié)點)
vim /etc/my.cnf
# 添加bin log配置,MySQL8 默認是開啟bin log的
log-bin=mysql-bin #二進制文件存放路徑
# 重啟服務(wù)
service mysqld restart
16. 從節(jié)點創(chuàng)建復制用戶
# 創(chuàng)建用戶
CREATE USER 'zmhslave'@'%' IDENTIFIED WITH mysql_native_password BY 'Root2018@';
# 賦予權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'zmhslave'@'%';
# 生效 flush privileges 命令本質(zhì)上的作用是將當前user和privilige表中的用戶信息/權(quán)限設(shè)置從mysql庫(MySQL數(shù)據(jù)庫的內(nèi)置庫)中提取到內(nèi)存里
flush privileges;
# 顯示當前master狀態(tài) 纽疟, file 和 position 從庫配置使用
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 2162 | | | |
+------------------+----------+--------------+------------------+-------------------+
17.主節(jié)點設(shè)置master
# 注意主master關(guān)閉防火墻或者開放3306端口
CHANGE MASTER TO MASTER_HOST='10.211.55.10', MASTER_USER='zmhslave', MASTER_PASSWORD='Root2018@',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=2162;
# 啟動slave
start slave
# 查看狀態(tài)
show slave status\G