程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 同機MySQL主從同步設置

同機MySQL主從同步設置

編輯:MySQL綜合教程

1、  配置主庫my.ini
port=3306
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
server-id=1
log-bin=mysql-bin.log
 
2、  配置從庫my2.ini
port=3307
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data2/"
server-id=2
#啟用從庫日志,這樣可以進行鏈式復制
log-slave-updates
#從庫是否只讀,0表示可讀寫,1表示只讀
read-only=1
#只復制某個表
#replicate-do-table=tablename
#只復制某些表(可用匹配符)
#replicate-wild-do-table=tablename%
#只復制某個庫(如果對多個數據庫做同步,那麼可以用多行來表示。)
replicate-do-db = backup
#只復制某些庫
#replicte-wild-do-db=dbname%
#不復制某個表
#replicate-ignore-table=tablename
#不復制某些表
#replicate-wild-ignore-table=tablename%
#不復制某個庫(如果忽略多個數據庫的同步,那麼可以用多行表示。)
replicate-ignore-db=mysql
#復制完的sql語句是否立即從中繼日志中清除,1表示立即清除
relay-log-purge = 1
#從服務器主機,用於show slave hosts生成從庫清單
report-host=slave-1
#即不管發生什麼錯誤,鏡像處理工作也繼續進行
slave-skip-errors=all
#每經過n次日志寫操作就把日志文件寫入硬盤一次(對日志信息進行一次同步)。n=1是最安全的做法,但效率最低。
#默認設置是n=0,意思是由操作系統來負責二進制日志文件的同步工作。
sync_binlog=1
 
3、  設置主庫
啟動主庫:
mysqld-nt --defaults-file=my.ini
連接到主庫中,創建復制用戶
C:/>mysql -uroot -ppassword -P3306
mysql> grant replication slave on *.* to 'backup'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
 
鎖住主庫的table,以便備份數據文件到從庫進行初始化
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
顯示主庫狀態,注意記下當前二進制日志文件名和position
mysql> show master status;
+-----------------------+-----------+-------------------+------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+------------+-------------------+------------------------+
| mysql-bin.000001 |      98 |  backup      |    mysql        |
+----------------------+------------+-------------------+--------------------------+
1 row in set (0.00 sec)
將C:/Program Files/MySQL/MySQL Server 5.0/Data/下的內容打包復制到C:/Program Files/MySQL/MySQL Server 5.0/Data2/下,執行從庫的初始化。當然,初始化也可以使用mysqldump來完成。
 
4、設置從庫
另外開啟一個cmd,啟動從庫
mysqld-nt --defaults-file=my2.ini
連接到從庫進行配置
C:/>mysql -uroot -ppassword -P3307
mysql> CHANGE MASTER TO
    -> MASTER_HOST='localhost',
    -> MASTER_USER='backup',
    -> MASTER_PASSWORD='backup',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=98;
Query OK, 0 rows affected (0.01 sec)
注意到這裡master_log_file和master_log_pos就是前面show master status的結果。
啟動復制進程
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
至此配置基本完成,在主庫解開table的鎖定
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved