MYSQL 主從配置
MySQL主從可以實現MySQL的讀寫分離,簡言之,master上進行寫操作,同步資料庫,slave上進行讀操作,可以極大的提升效能,降低伺服器負載,在此不做贅述,下面以兩臺機器來做主從配置詳解。
開始之前的準備工作:
1、準備兩臺伺服器
主資料庫 | 192.168.60.12 | master |
從資料庫 | 192.168.60.13 | slave |
2、啟動兩臺伺服器
3、關閉系統防火牆
4、保證兩臺伺服器之間可以相互ping 通
具體操作步驟如下:
第一步:在主資料庫master 上編輯mysql配置檔案,做如下操作:
注:mysql安裝方式的不同會導致mysql的配置檔案的位置不一樣,大家要根據自己的安裝位置來找配置檔案,一般預設路徑:
vim /etc/my.cnf
[mysqld]
bind_address = 0.0.0.0
server-id = 2 #IP地址最後一位
log_bin = /var/log/mysql/mysql-bin.log #開啟binlog 日誌
expire_logs_days = 10 #日誌的快取時間
max_binlog_size = 200M #日誌的最大大小
binlog_do_db = data_collection#同步的資料庫名稱
binlog_ignore_db = mysql #忽略同步的資料庫
第二步:在從資料庫slave上編輯mysql配置檔案,做如下操作:
vim /etc/my.cnf
[mysqld]
bind_address = 0.0.0.0
server-id = 23 #IP地址最後一位
expire_logs_days = 10 #日誌的快取時間
max_binlog_size = 200M #日誌的最大大小
replicate_do_db = data_collection#同步的資料庫名稱
replicate_ignore_db = mysql #忽略同步的資料庫
第三步:在主資料master上建立一個同步許可權的賬戶repl,用來同步資料,做如下操作:
mysql>CREATE USER 'repl'@'192.168.60.13' IDENTIFIED BY 'slavepass'; #建立使用者
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.60.13' IDENTIFIED BY 'slavepass'; #分配許可權
mysql>flush privileges; #重新整理許可權
show master status; #檢視主資料庫master的狀態,不要關閉視窗先 ,不要重啟
第五步:在從資料庫slave上做如下操作:
mysql> change master to
-> master_host='192.168.60.12',
-> master_user='repl',
-> master_password='slavepass',
-> master_port=3306,
-> master_log_file='mysql-bin.000003',
-> master_log_pos=73;
第六步:啟動slave
start slave;
第七步:檢視slave狀態
show slave status;
如果出現下面的提升,則mysql主從資料庫配置成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
stop slave;
注:可能存在的問題:
刪除從資料庫的配置檔案auto.cnf,然後主資料重新授權,然後再change to master。