mysql 讀寫分離之主從配置
#mysql主從複製 ###下載mysql安裝包
###安裝master mysql
- . 檢查當前機器是否已經安裝mysql
yum repolist enabled | grep "mysql.-community."
- . 解壓mysql壓縮檔案
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--. 1 root root 603985920 Jun 28 16:05 mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar -rw-r--r--. 1 7155 31415 26760484 Apr 9 01:06 mysql-community-client-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 549512 Apr 9 01:06 mysql-community-common-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 4221784 Apr 9 01:06 mysql-community-devel-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 24343708 Apr 9 01:06 mysql-community-embedded-compat-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 2349488 Apr 9 01:06 mysql-community-libs-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 2156516 Apr 9 01:06 mysql-community-libs-compat-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 119957152 Apr 9 01:06 mysql-community-minimal-debuginfo-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 357581528 Apr 9 01:07 mysql-community-server-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 20562556 Apr 9 01:07 mysql-community-server-minimal-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 7155 31415 45494324 Apr 9 01:07 mysql-community-test-8.0.11-1.el7.x86_64.rpm -rw-r--r--. 1 root root 631340 May 9 2014 Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
- . 安裝mysql
yum install -y mysql-community-common-8.0.11-1.el7.x86_64.rpm
yum install -y mysql-community-libs-8.0.11-1.el7.x86_64.rpm
yum install -y mysql-community-client-8.0.11-1.el7.x86_64.rpm
yum install -y mysql-community-server-8.0.11-1.el7.x86_64.rpm
- . 修改root密碼
查詢初始密碼 grep 'password' /var/log/mysqld.log |head -n 1
mysql -u root -p
登入成功購執行下面指令碼修改root密碼
alter user user() identified by "new password";
###安裝slave mysql 同上步驟
###在主節點上建立一個同步賬號
1)每個從資料庫會使用一個MySQL賬號來連線主資料庫,所以我們要在主資料庫裡建立一個賬號,並且該賬號要授予 REPLICATION SLAVE 許可權,你可以為每個從資料庫分別建立賬號,當然也可以用同一個!)
2)你可以用原來的賬號不一定要新創賬號,但你應該注意,這個賬號和密碼會被明文存放在master.info檔案中,因此建議單獨創一個只擁有相關許可權的賬號,以減少對其它賬號的危害!)
3)建立新賬號使用“CREATE USER”,給賬號授權使用“GRANT”命令,如果你僅僅為了主從複製建立賬號,只需要授予REPLICATION SLAVE許可權。
CREATE USER 'repl'@'192.168.0.%' IDENTIFIED BY 'repl123';
GRANT REPLICATION SLAVE ON . TO 'repl'@'192.168.0.%';
###配置主資料庫
-
要主資料庫,你必須要啟用二進位制日誌(binary logging),並且建立一個唯一的Server ID,這步驟可能要重啟MySQL。
-
主伺服器傳送變更記錄到從伺服器依賴的是二進位制日誌,如果沒啟用二進位制日誌,複製操作不能實現(主庫複製到從庫)。
-
複製組中的每臺伺服器都要配置唯一的Server ID,取值範圍是1到(232)−1,你自己決定取值。
-
配置二進位制日誌和Server ID,你需要關閉MySQL和編輯my.cnf或者my.ini檔案,在 [mysqld] 節點下新增配置。
-
下面是啟用二進位制日誌,日誌檔名以“mysql-bin”作為字首,Server ID配置為1,如下:
[mysqld]
log-bin=mysql-bin
server-id=1
重啟後 檢視主伺服器狀態,mysql> show master status;, 如圖:
###配置從資料庫
- 從伺服器配置
從伺服器,同理,要分配一個唯一的Server ID,需要關閉MySQL,修改好後再重啟,如下:
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
- 配置連線主伺服器的資訊
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.233', MASTER_USER='repl', MASTER_PASSWORD='repl123',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=313;
start slave;
- 檢視從伺服器狀態
show slave status \G;
如果圖中兩個指標為yes就成功了,現在可以試著建立資料庫或者建立表來測試