Linux MySQL主從複製(Replication)配置

來源:互聯網
上載者:User

MySQL是開源的關係型資料庫系統。複製(Replication)是從一台MySQL資料庫伺服器(主伺服器master)複製資料到另一個伺服器(從伺服器slave)的一個進程。
 
配置主伺服器(master)
 
1、編輯資料庫設定檔my.cnf,一般在/etc/目錄下。
 
1.#vi /etc/my.cnf
 
在[mysqld]的下面加入下面代碼:
 
1.log-bin=mysql-bin
2.server-id=1
3.innodb_flush_log_at_trx_commit=1
4.sync_binlog=1
5.binlog-do-db=wordpress
6.binlog_ignore_db=mysql
 
server-id=1中的1可以任定義,只要是唯一的就行。
binlog-do-db=wordpress是表示只備份wordpress。
binlog_ignore_db=mysql表示忽略備份mysql。
不加binlog-do-db和binlog_ignore_db,那就表示備份全部資料庫。
2、然後重啟MySQL:
 
1.#service mysqld restart
 
3、登入MySQL伺服器。
 
1.#mysql -uroot -p
 
在主伺服器建立一個使用者賦予“REPLICATION SLAVE”的許可權。你不需要再賦予其它的許可權。在下面的命令,把X.X.X.X替換為從伺服器的IP。
 
1.mysql>CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password';
2.mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';
 
4、執行以下命令鎖定資料庫以防止寫入資料。
 
1.mysql>FLUSH TABLES WITH READ LOCK;
 
5、退出mysql命令列,匯出資料庫
 
1.#mysqldump -u root -p123456 --all-databases  --lock-tables=false  -- > /root/all.sql
 
6、使用scp命令傳輸資料庫檔案all.sql到從伺服器。
 
1.#scp /root/all.sql root@www.example.com:/root
 
7、再次串連資料庫進入mysql命令列查看master狀態。
 
1.mysql>SHOW MASTER STATUS;
 
請記下顯示的資訊,配置從伺服器會用到。
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 | 1001741 | dbispconfig | mysql |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
8、解鎖資料表。
 
1.mysql>UNLOCK TABLES;
 
配置從伺服器(slave)
 
登入從伺服器。
1、匯入主伺服器的資料庫。
 
1.#mysql -u root -p123456 < /root/all.sql
 
2、編輯設定檔my.cnf,在[mysqld]下面加入:
 
1.server-id=2
 
2可以自己定義,只要保證唯一的就行。
3、儲存檔案並重啟mysqld。
 
1.#service mysqld restart
 
4、登入mysql伺服器,執行以下命令。
 
1.mysql>CHANGE MASTER TO
2.MASTER_HOST='X.X.X.X',
3.MASTER_USER='user',
4.MASTER_PASSWORD='password',
5.MASTER_PORT=3306,
6.MASTER_LOG_FILE='mysql-bin.000001',
7.MASTER_LOG_POS=98,
8.MASTER_CONNECT_RETRY=10;
 
MASTER_HOST:主伺服器的IP。
MASTER_USER:配置主伺服器時建立的使用者名稱
MASTER_PASSWORD:使用者密碼
MASTER_PORT:主伺服器mysql連接埠,如果未曾修改,預設即可。
5、啟動slave進程。
 
1.mysql>START SLAVE;
 
6、查看mysql的日誌,一般在/var/log/目錄下的mysqld.log,如果啟動成功,你應該會看到類似下面的日誌。
 
[root@localhost ~]# vi /etc/my.cnf

091104 8:42:02 [Note] Slave I/O thread: connected to master ‘root@X.X.X.X:3306?, replication started in log ‘mysql-bin.000001? at position 98
現在主伺服器和從伺服器已經配置好了。另外你可能需要設定主伺服器的資料庫二進位日誌的到期時間,可以在設定檔中使用參數expire_logs_days來設定。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.