目的:
主從服務器設置的穩健性得以提升,如果主服務器發生故障,可以把本來作為備份的從服務器提升為新的主服務器。
在主從服務器上分開處理用戶的請求,可獲得更短的響應時間。
用從服務器做數據備份而不會占用主服務器的系統資源。
場景描述
主服務器:IP地址192.168.56.128,mysql已經安裝,無用戶數據。
從服務器:IP地址192.168.56.129,mysql已經安裝。
主服務器的mysql服務已經正常啟動。
主從復制配置
主服務器上進行操作
(1)創建用戶並授權
insert into mysql.user(host,user,password) values(
"localhost"
,
"rep1"
,password(
"mysql"
));
grant replication slave on *.* to rep1@
192.168
.
56.129
identified by
'mysql'
;
(2)查詢主數據庫的狀態
mysql> show master status;
記下File以及Position的值,在後面進行從服務器操作的時候需要使用。
配置從服務器
(1)修改從服務器的配置文件/etc/my.cnf
使得“server-id=2”,並確定這個id沒有被別的mysql服務所使用。
(2)啟動mysql服務
mysqld_safe --user=mysql &
(3)mysql登錄
mysql -uroot -p
(4)執行同步的sql語句
mysql> change master to master_host=
'192.168.56.128'
,master_user=
'rep1'
,master_password=
'mysql'
,master_log_file=
'mysql-bin.000004'
,master_log_pos=
477
;
正確執行後再執行
mysql> start slave;
就啟動了slave同步功能。
(5)主從同步檢查
執行如下語句
mysql>show slave status\G
來檢查從服務器的同步情況,一個正常的輸出結果應該如下面的形式:
Slave_IO進程以及slave_SQL進程都必須正常運行,在狀態輸出中表現為:“slave”;否則都是不正確的狀態(如一個值是Yes,另一個是No則不行)。
如果主數據庫服務器已經存在用戶數據,那麼在進行主從復制時,需要做以下處理。
(1)主數據庫鎖表操作,不讓數據再進行寫入動作。
mysql>flush tables
with
read lock;
(2)查看主數據庫的狀態
mysql>show master status;
記下File以及Position的值,以備從服務器使用。
(3)把主服務器的數據文件復制到從服務器,最好先用tar歸檔壓縮處理一下
(4)取消主數據庫鎖定
mysql>unlock tables;
從服務器的操作和前面的步驟一樣,略過。
實驗一
在主數據庫服務器上創建庫和表,然後插入記錄,再登錄到從服務器,查看是否也建立相一致的庫和表以及記錄。
(1)主服務器上的操作
mysql>create database first_tb;
mysql>create table first_db(id
int
(
3
)),name char (
10
));
②在主數據庫服務器創建表first_tb;
mysql>insert into first_tb values (
001
,
'myself'
);
③在主數據服務器的表first_tb中插入記錄;
(2)從服務器上查看
1mysql>show databases;
①數據庫first_db自動生成
②表first_tb也自動生成,數據記也錄存在。
實驗二
導入數據庫,在主庫上查看現在的數據庫
創建數據庫buy並且導入數據
在從庫上查看,數據庫已經完全導入。
本文出自 “老徐的私房菜” 博客,謝絕轉載!
原文出自:http://laoxu.blog.51cto.com/4120547/1198728