數據庫在我們開發的過程中是必不可少的。如何實現數據的高可用用性呢,目前用的最多的方式就是主從複製,一個master,一個或多個slave, 當master產生數據讀寫的時候,會同步到slaves上,要注意的是,在這種模式下,在slave上產生的讀寫是無法同步到mster上的。好的,今天我們就來介紹一下,mysql5.7主從的搭建過程。本案例使用的系統版本是centos6, mysql版本是mysql-5.7-23.
首先我們準備兩臺機器:我的兩臺機器ip地址分別是: 192.168.1.11(master), 192.168.1.12(slave).
一. 安裝
在兩臺機器上分別安裝mysql5.7. 安裝的方式很多,可以使用rpm,可以直接下載包安裝。
1.1 rmp 安裝
我用的是rmp,需要安裝四個包,分別是:
mysql-community-common-5.7.24-1.el6.x86_64.rmp,mysql-community-lib-5.7.24-1.el6.x86_64.rmp,mysql-community-client-5.7.24-1.el6.x86_64.rmp,mysql-community-server-5.7.24-1.el6.x86_64.rmp, 使用rmp命令直接安裝即可,安裝的順序就按照上述順序進行。安裝的時候有幾個注意事項,首先是先卸載本機mysql(因爲有的系統自帶的mysql,版本比較低,安裝的時候可能會衝突)
使用如下命令刪除本機mysql:
rpm -qa | grep -i mysql | xargs rpm -e --nodeps
find / -name mysql | xargs rm -rf
find / -name my.conf | xargs rm - rf
使用如下命令安裝:
rpm -ivh mysql-community-common-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el6.x86_64.rpm
安裝過程報錯解決:
如果出現:
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
說明環境缺少依賴:安裝所需依賴:
yum install libaio
yum install numactl
如果還報錯,說明你電腦上還缺其他依賴,百度一下,安裝對應包即可。
安裝後啓動mysql:
service mysqld start
修改密碼,首先獲取臨時密碼:
grep "password" /var/log/mysqld.log
複製臨時密碼,登錄: mysql -uroot -p
輸入密碼即可。
修改密碼: 先use mysql; 切換到mysql數據庫
alter user 'root'@'localhost' identified by '123456';
授權:
grant all privileges on *.* to root@'%' identified by '123456';
#分配從庫訪問用戶(在mysql客戶端執行sql語句:)代表用戶名: slave 密碼: 123456
grant replication slave on *.* to slave@'%' identified by '123456';
flush privileges;
好了安裝完畢
2. 直接下載安裝: https://blog.csdn.net/weixin_38003389/article/details/90696337
二. 配置主從:
2.1 配置主:
在master的機器上: vim /etc/my.cnf . 填寫如下內容:
port=3306
binlog-ignore-db=mysql # 代表哪些庫無需同步
server-id=1 # 很關鍵1 代表主 ,從庫配置的時候必須和他不一樣
expire-logs-days =7
binlog-ignore-db=information_schema
binlog-ignore-db=performation_schema
binlog-ignore-db=sys
log-bin=master-bin
log-slave-updates=true
整體截圖:
重啓mysql: service mysqld restart;
登錄mysql ,查看master狀態: show master status;注意紅框中內容,下面要用
2.2 配置從:
修改 /etc/my.cnf
log-bin=mysql-bin
server-id=2
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performation_schema
binlog-ignore-db=sys
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
整體截圖:
重啓服務: service mysqld restart
登錄從mysql, 執行sql語句: 這裏要注意,不要直接複製,改成你自己的數據。 host是master的host, user是 你在master上給slave分配的用戶名,密碼是對應的密碼,log_file 和log_pos 都從master上執行 show master status 的結果裏取。見上面圖中紅框
stop slave;
change master to master_host='192.168.1.11',master_user='slave',master_password='123456',master_log_file='master-bin.000001', master_log_pos= 24918;
start slave;
查看狀態: show slave status \G;
好了,主從搭建完畢。
測試,在master上創建一個表,看從庫中是否已出現即可。