mysql 配置主從複製筆記

 

 version :master mysql 5.6   slave mysql   5.7
 env: win7 
 refer:http://dev.mysql.com/doc/refman/5.7/en/replication-upgrade.htmlhtml

第一步:修改master 配置文件my.inijava

   a)關閉mysql  cmd---->net stop mysql56;mysql

   b)修改my.inisql

log_bin=mysql-bin//開啓日誌
binlog-do-db=database//須要複製的數據庫
port = 3306//端口
server_id =153319538//id 必需惟一
提示:找不到my.ini 文件的,能夠去C:\ProgramData\MySQL\MySQL Server 5.7 目錄下,這個文件win7默認是隱藏的。打開my.ini會發現已經有許多配置,咱們的 配置必須放在[mysqld]節點下面

 

 c)打開mysql cmd---> net start mysql56;數據庫

測試:在命令行輸入mysql>show master status; 而且找到File 和 Position 的值記錄下來;app

若是顯示的是空,說明以前的步驟有誤。測試

 

 第二步:建立賬戶並受權spa

mysql> CREATE USER 'repl'@'localhost' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost';

第三步:修改slave 的ini文件命令行

a)關閉mysql  b)修改my.ini c)開啓mysql 日誌

server_id =15382016
replicate-do-table=database.table//只複製指定的表
replicate-ignore-db=database//忽略的數據庫
log_bin=mysql-bin//啓用日誌

啓動後,登陸主數據庫的帳號和密碼等信息,而後啓動slave

mysql>change master to master_host='192.168.xxx.210',master_user='repl',master_password='slavepass', master_log_file='mysql-bin.000001',master_log_pos=120

mysql>start slave;

mysql> show slave status;

若是出現: Slave_IO_Running: YesSlave_SQL_Running: Yes以上兩項都爲Yes,那就ok,若是嘗試向master插入數據,就會看到slave 中數據也會更新。

關於my.ini的一些配置信息,能夠參考官方文檔,仍是有不少靈活的配置選項的。

ps : 一些其餘的命令

1.重置master, 

mysql>>FLUSH TABLES WITH READ LOCK;//鎖表

mysql>reset master

mysql> UNLOCK TABLES;//解鎖

2.清除slave  

mysql>CHANGE MASTER TO MASTER_HOST='192.168.xxx.210';  

mysql>reset slave ;

3.中止slave   mysql>stop slave;

補充: 今天看文檔發現一些問題須要注意

    mysql 並不推薦咱們在Master 中使用過濾,若是要用的推薦在slave中配置。

    若是是複製到其餘的數據庫(好比 dabase1.tableA---> database2.tableA ) 能夠在Slave添加

    replicate-rewrite-db=dabase1->database2

詳細配置見,傳送門:

http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_replicate-ignore-table

補充一:  最近又看了一下,發現mysql 5.7 是能夠設置延時的,有許多系統表都值得研究 

use performance_schema;

show tables; -- ---配置沒mysql主從複製 延遲時間 好比: 讓slave 12小時同步一次  channel_name  默認是null  5.7 新增的多元複製, replication_applier_configuration; -- -- 查看當前鏈路的狀態 remaining_delay 指的就是距離上邊設定的延時還有多久  replication_applier_status;

相關文章
相關標籤/搜索