安裝包下載
訪問(wèn)http://dev.mysql.com/downloads/mysql/,找到MySQL Community Server下載頁(yè)面揣苏,平臺(tái)選擇“Red Hat Enterprise Linux 7/ Oracle Linux”乾戏,然后選擇64位的bundle整合包下載,mysql-5.7.17.tar
準(zhǔn)備工作
1)安裝依賴包:
# yum -y install perl-Data-Dumper perl-JSON perl-Time-HiRes
2)停止mariadb服務(wù)
#systemctl stop mariadb
3)刪除數(shù)據(jù)
#rm -rf /var/lib/mysql/*
4)卸載軟件包
# rpm -e --nodeps mariadb-server mariadb
# rpm -qa |grep mysql
mysql-community-client-5.7.17-1.el7.x86_64??? mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64
mysql-community-test-5.7.17-1.el7.x86_64?? mysql-community-common-5.7.17-1.el7.x86_64
mysql-community-devel-5.7.17-1.el7.x86_64??? mysql-community-libs-compat-5.7.17-1.el7.x86_64
mysql-community-libs-5.7.17-1.el7.x86_64?? mysql-community-embedded-5.7.17-1.el7.x86_64
mysql-community-embedded-compat-5.7.17-1.el7.x86_64?? mysql-community-embedded-devel-5.7.17-1.el7.x86_64
mysql-community-server-5.7.17-1.el7.x86_64
# ls /etc/my.cnf
/etc/my.cnf
# ls /var/log/mysqld.log
/var/log/mysqld.log
# ls /var/lib/mysql
# grep mysql /etc/passwd
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
啟動(dòng)mysql服務(wù)
# systemctl start mysqld
# systemctl enable mysqld
# systemctl status mysqld
# grep 'temporary password' /var/log/mysqld.log
2019-07-19T11:49:14.026897Z 1 [Note] A temporary password is generated for root@localhost: a3kKn4fdM-Fu
# mysql -u root -p'a3kKn4fdM-Fu'
mysql> alter user root@localhost identified by '123qqq...A'展辞;?????????????????? //修改初始密碼
Mysql主從配置
準(zhǔn)備工作:
# systemctl stop firewalld
# systemctl disable firewalld
# vim /etc/sysconfig/selinux??????????????????????? //disable? selinux
主服務(wù)器操作:
1)修改/etc/my.cnf配置式散,啟用bin-log
[mysqld]
log_bin=master43??????????????????????????? //啟用binlog日志喇勋,并指定文件名前綴
server_id=43???????????????????????????????????? //指定服務(wù)器ID號(hào)
# systemctl restart mysqld.service
2)新建一個(gè)備份用戶,授予復(fù)制權(quán)限,需要的權(quán)限為REPLICATION SLAVE猖败,允許其從Slave服務(wù)器訪問(wèn)
mysql> grant replication slave on *.*?
??????? -> to 'replicater'@'10.236.110.%'
??????? -> identified by '123qqq...A';
3)修改/etc/my.cnf配置,配置從服務(wù)器
[mysqld]
log_bin=master44
server_id=44
# systemctl restart mysqld.service
4)通過(guò)CHANGE MASTER語(yǔ)句指定MASTER服務(wù)器的IP地址降允、同步用戶名/密碼恩闻、起始日志文件、偏移位置(參考MASTER上的狀態(tài)輸出show? master? status)
mysql> change master to master_host='10.236.110.43'剧董,
????????-> master_user='replicater',
??????? -> master_password='123qqq...A',
??????? -> master_log_file='master43.000001',
??????? -> master_log_pos=454;
5)開啟slave
mysql> start slave幢尚;
mysql> show slave status\G;
...
Slave_IO_Running: Yes?????????????????????????????????? //IO線程應(yīng)該已運(yùn)行
Slave_SQL_Running: Yes?????????????????????????????? //SQL線程應(yīng)該已運(yùn)行
...
若START SLAVE直接報(bào)錯(cuò)失敗破停,請(qǐng)檢查CHANGE MASTER相關(guān)設(shè)置是否有誤,糾正后再重試尉剩;若IO線程或SQL線程有一個(gè)為“No”真慢,則應(yīng)檢查服務(wù)器的錯(cuò)誤日志,分析并排除故障后重啟主從復(fù)制
配置半同步復(fù)制
1)查看是否允許動(dòng)態(tài)加載模塊默認(rèn)允許
mysql> show variables like 'have_dynamic_loading';
have_dynamic_loading | YES
2)命令行加載插件理茎,用戶需有SUPER權(quán)限(主從庫(kù)上操作)
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME? 'semisync_master.so';
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
3)查看系統(tǒng)庫(kù)下的表黑界,模塊是否安裝成功:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
rpl_semi_sync_master | ACTIVE
rpl_semi_sync_slave | ACTIVE
高可用架構(gòu)下,master和slave需同時(shí)啟動(dòng)皂林,以便在切換后能繼續(xù)使用半同步復(fù)制
# vim /etc/my.cnf
[mysqld]
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1?