Centos7.3 mysql的yum安裝以及主從複製部署

cd /mnt

wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm #下載擴展rpm

rpm -ivh mysql80-community-release-el7-2.noarch.rpm --nodeps

注意:如果安裝過mysql其他版本的擴展noarch,例如mysql-community-release-el7-5.noarch,會報錯如下:

[root@localhost Download]# rpm -ivh mysql80-community-release-el7-2.noarch.rpm --nodeps
Preparing...                          ################################# [100%]
	file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql from install of mysql80-community-release-el7-2.noarch conflicts with file from package mysql-community-release-el7-5.noarch
	file /etc/yum.repos.d/mysql-community-source.repo from install of mysql80-community-release-el7-2.noarch conflicts with file from package mysql-community-release-el7-5.noarch
	file /etc/yum.repos.d/mysql-community.repo from install of mysql80-community-release-el7-2.noarch conflicts with file from package mysql-community-release-el7-5.noarch

解決辦法:先卸載mysql-community-release-el7-5.noarch

rpm -e mysql-community-release-el7-5.noarch --nodeps

然後安裝mysql80-community-release-el7-2.noarch.rpm

rpm -ivh mysql80-community-release-el7-2.noarch.rpm --nodeps

安裝不同版本的mysql參考文檔:

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

切換mysql源

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

yum install -y mysql-community-server #安裝mysql

systemctl start mysqld

grep 'temporary password' /var/log/mysqld.log #mysql的初始密碼

 

#mysql root登錄

mysq -uroot -p密碼

#執行

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼'; #更改root密碼

CREATE USER 'sync'@'%' IDENTIFIED BY 'Samsung.123';

GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%' IDENTIFIED BY 'Samsung.123' WITH GRANT OPTION;

 

#修改master的配置文件

vim /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=22 #數值在1-231,可自行設置。

#binlog-do-db=test #要同步test數據庫,要同步多個數據庫就多加幾個replicate-do-db=數據庫名

#binlog-ignore-db=mysql #忽略mysql,即不同步mysql數據庫。

innodb_flush_log_at_trx_commit=2

sync_binlog=1000

 

systemctl restart mysqld #重啓mysql

mysql -uroot -p密碼 #進入數據庫

#執行

show master status; #記住File和Position的信息,在slave中有用。

 

#修改slave的配置文件

vim /etc/my.cnf

[mysql]

server-id=23 #數值在1-231,可自行設置,但是需大於master的數值。

#replicate-do-db=test #指定要複製test數據庫裏的數據,不指定即默認同步所有數據庫的數據。

#replicate-ignore-db=mysql #忽略mysql數據庫,即不復制mysql數據庫裏的數據。

#relay-log=mysqld-relay-bin #清除bin文件,具體使用方法,需要請教一下,百度的看不懂。

 

systemctl restart mysqld

mysql -uroot -p密碼

#執行

stop slave;

CHANGE MASTER TO

MASTER_HOST='master的ip地址',

MASTER_USER='sync(master中創建的同步賬號)',

MASTER_PASSWORD='密碼(master中同步中號的密碼)',

MASTER_PORT=3306,

MASTER_LOG_FILE='(master中的File信息)'

MASTER_LOG_POS='(master中的Position信息)';

start slave;

show slave status \G;

#Seconds_Behind_Master: 0 #表示已同步

 

注:若Slave_SQL_Running: no,請重複執行一下命令,直到yes爲止:

stop slave;

set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

start slave;

 

主從複製搭建好之後,驗證:

master數據庫,root登錄,創建一個數據庫,觀察在slave上有沒有自動創建對應的庫。

mysql -uroot -p密碼

create database test;

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章