為什么要用mysql主從復制? 這個問題不需要回答吧,,,,,想想,一個人干活快呢,還是一萬個能性格功力一樣的人干活快呢. 不用解釋大家都懂. 那咱們就開始吧.

 

看到了吧. 一臺主的. n個從的. 一主多從,而不能一從多主.注意了哈.     那咱們就以  1從1主為例. 下面先配主機

 

 

1.主機配置,,, 主機ip地址是 103.212.32.135   進入服務器.編輯一下mysql的config信息. 比如

[Shell] 純文本查看 復制代碼
1
vi /usr/local/mysql/my.cnf

  
然后修改以下幾個地址
找到[mysqld]節點 修改或是添加

[SQL] 純文本查看 復制代碼
1
2
3
4
5
6
#log-bin是指開啟二進制操作日志
log-bin=mysql-log
#serverid是指他的唯一id,可以理解為IP.所以說以ip的最后三位為id比較合適
server-id=123
#需要同步的庫. 不寫同步所有
binlog-do-db = 需要同步的數據庫,多個用逗號隔開 

重啟mysql.
2.添加一個同步用的用戶,注意,最好別用root  

[SQL] 純文本查看 復制代碼
1
GRANT REPLICATION SLAVE ON *.* to '用戶'@'%' identified by '密碼';

這里的%是指所有主機都可以聯
重啟.到此為止.服務器的配置完成.太尼瑪簡單了是吧. 沒事習慣就好了. 沒毛病. 從3開始就是客戶端配置了.

3. 打開從機,比如本地的,也是接第1步的操作個性my.cnf的這兩個屬性,注意id別重復.
4.回到服務器,執行一下這條sql

[SQL] 純文本查看 復制代碼
1
show master status


看到以下代碼說明正常.

+------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000001 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)


5.重啟后,執行以下代碼

[SQL] 純文本查看 復制代碼
1
2
3
4
5
6
change master to master_host='103.212.32.135',
master_user='用戶',
master_password='密碼',
master_log_file='mysql-bin.000001',
master_log_pos=308;
start slave;



6.等待幾秒后從機執行

[SQL] 純文本查看 復制代碼
1
show slave status\G


Slave_IO_State: Waiting for master to send event
              Master_Host  主服務器地址
              Master_User 授權帳戶名
                        .........
              Slave_IO_Running: Yes    //此狀態必須YES
              Slave_SQL_Running: Yes     //此狀態必須YES
                        .......
               


到此說明正常.