Mysql資料庫讀寫分離
一、 Mysql資料庫安裝(此處略過)
二、 Mysql主從複製,主伺服器為A:192.168.5.31,從伺服器為B:192.168.5.32
1、 主伺服器A上操作
登陸mysql
Mysql –u root –p
授權從伺服器B同步資料使用者
mysql> GRANT REPLICATION SLAVE ON *.* to 'slavedb'@'192.168.5.32' identified by '123456';
查看主伺服器狀態,記錄紅色字型標示,配置從伺服器備用
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 107 | | mysql |
+------------------+----------+--------------+------------------+
修改mysql設定檔
vi /etc/my.cnf
server-id = 1 #設定server-id為1,1表示為主伺服器
binlog-do-db= #需要進行同步的資料庫,全部庫都同步可不填
binlog-ignore-db= #不需要同步的資料庫
2、 從伺服器B上操作
修改mysql設定檔
vi /etc/my.cnf
server-di = 2 #設定server-id為2
binlog-do-db= #根據需要進行設定
binlog-ignore-db= #根據需要進行設定
登陸mysql
mysql –u root –p
停止slave同步
mysql> salve stop;
執行資料庫同步命令, master_log_file, master_log_pos選項需要根據主要資料填寫
Mysql>Change master to
master_host='192.168.5.31',
master_user='slavedb',
master_password='123456',
master_log_file='mysql-bin.000006',
master_log_pos=107;
啟動slave同步
mysql> salve start;
查看同步狀態,Slave_IO_Running,Slave_SQL_Running同時為yes表示已開啟同步
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.5.31
Master_User: slavedb
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 107
Relay_Log_File: cs2-relay-bin.000004
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
3、 測試主從複製
在主要資料庫建立資料庫
mysql>create database db1;
在從資料庫查看資料庫,顯示db1複製正常
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)