mysql的主從複製

    本文收藏自百度經驗~~~ http://jingyan.baidu.com/article/0eb457e57356e803f1a90512.html

最近接的項目,幫人維護mysql服務器,臨時來了個需求,幫忙搭一個主從複製,用於備機和備份使用,弄了半天,終於弄好了,但是覺得很多東西還是都忘記的差不多了,所以這裏也記錄一下。下次忘記了,不用在網上搜了。

主從複製目的:

主從服務器設置的穩健性得以提升,如果主服務器發生故障,可以把本來作爲備份的從服務器提升爲新的主服務器。

在主從服務器上分開處理用戶的請求,讀的話,可以直接讀取備機數據,可獲得更短的響應時間。

用從服務器做數據備份而不會佔用主服務器的系統資源。

場景描述

主服務器:IP地址192.168.56.128,mysql已經安裝,無用戶數據。

從服務器:IP地址192.168.56.129,mysql已經安裝。

主服務器的mysql服務已經正常啓動。

主從複製配置

主服務器上進行操作

(1)創建用戶並授權

1    mysql -uroot -p密碼    

2    mysql>grant replication slave on *.* to [email protected] identified by 'mysql';    

3    mysql>flush privileges;    

(2)查詢主數據庫的狀態

1    mysql> show master status;    

記下File以及Position的值,在後面進行從服務器操作的時候需要使用。

配置從服務器

(1)修改從服務器的配置文件/etc/my.cnf

使得“server-id=2”,並確定這個id沒有被別的mysql服務所使用。

(2)啓動mysql服務

1    mysqld_safe --user=mysql &    

(3)mysql登錄並執行同步的sql語句,最後並啓動slave

1    #mysql -uroot -p    

2    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;    

3    mysql> start slave;    

就啓動了slave同步功能。

(5)主從同步檢查

執行如下語句

1    mysql>show slave status\G    

來檢查從服務器的同步情況,一個正常的輸出結果應該如下面的形式:

Slave_IO進程以及slave_SQL進程都必須正常運行,在狀態輸出中表現爲:“slave”;否則都是不正確的狀態(如一個值是Yes,另一個是No則不行)。

如果主數據庫服務器已經存在用戶數據,那麼在進行主從複製時,需要做以下處理。

(1)主數據庫鎖表操作,不讓數據再進行寫入動作。

1    mysql>flush tables withread lock;    

(2)查看主數據庫的狀態

1    mysql>show master status;    

記下File以及Position的值,以備從服務器使用。

(3)把主服務器的數據文件複製到從服務器,最好先用tar歸檔壓縮處理一下

(4)取消主數據庫鎖定

1    mysql>unlock tables;    

從服務器的操作和前面的步驟一樣,略過。

實驗一

在主數據庫服務器上創建庫和表,然後插入記錄,再登錄到從服務器,查看是否也建立相一致的庫和表以及記錄。

(1)主服務器上的操作

1    mysql>create database first_tb;    

①在主數據庫服務器創建庫first_tb;

1    mysql>create table first_db(idint(3)),name char (10));    

②在主數據庫服務器創建表first_tb;

1    mysql>insert into first_tb values (001,'myself');    

③在主數據服務器的表first_tb中插入記錄;

(2)從服務器上查看

1    mysql>show databases;    

①數據庫first_db自動生成

②表first_tb也自動生成,數據記也錄存在。

實驗二

導入數據庫,在主庫上查看現在的數據庫

創建數據庫buy並且導入數據

在從庫上查看,數據庫已經完全導入。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章