條件:一臺阿里雲服務器(centos 6.6 +mysql 5.6)mysql
一臺騰訊雲服務器(centos 7.2 +mysql 5.6)sql
注:主庫和從庫版本能夠一致也能夠不一致,須要說明一點,若是二者版本不一致,通常主庫的版本須要比從庫的版本低,這樣就能夠避免因爲版本問題,有些sql不能執行的問題。固然學習環境能夠不一樣,可是生產環境必需要要,系統和數據版本要相同的數據庫
前置步驟:重置mysql密碼,讓mysql能外網訪問。centos
(Master config)緩存
正式步驟:1.修改 Master 的配置文件/etc/my.[root@edu-mysql-01 ~]# vi /etc/my.cnf服務器
## 在 [mysqld] 中增長如下配置項
## 設置 server_id,通常設置爲 IP
server_id=205
## 複製過濾: 須要備份的數據庫, 輸出 binlog
#binlog-do-db=roncoo
## 複製過濾: 不須要備份的數據庫, 不輸出(mysql 庫通常不一樣步)
binlog-ignore-db=mysql
## 開啓二進制日誌功能, 能夠隨便取, 最好有含義
log-bin=edu-mysql-bin
## 爲每一個 session 分配的內存,在事務過程當中用來存儲二進制日誌的緩存
binlog_cache_size=1M
## 主從複製的格式(mixed,statement,row,默認格式是 statement)
binlog_format=mixed
## 二進制日誌自動刪除/過時的天數。默認值爲 0,表示不自動刪除。
expire_logs_days=7
## 跳過主從複製中遇到的全部錯誤或指定類型的錯誤,避免 slave 端複製中斷。
## 如: 1062 錯誤是指一些主鍵重複, 1032 錯誤是由於主從數據庫數據不一致
slave_skip_errors=1062 session
2.重啓mysql ide
/etc/init.d/mysql restart(有些用戶可能須要使用/etc/init.d/mysqld restart)學習
3.建立同步用戶阿里雲
(登錄mysql)
##建立數據同步用戶,並授予相應的權限(用戶名+ip+密碼)
mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.206' identified by
'roncoo.123';
Query OK, 0 rows affected (0.00 sec)
## 刷新受權表信息
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
## 查看 position 號, 記下 position 號(從機上須要用到這個 position 號和如今的日誌文件)
mysql> show master status;
(slave config)
4.從配置
## 在 [mysqld] 中增長如下配置項
## 設置 server_id,通常設置爲 IP
server_id=206
## 複製過濾: 須要備份的數據庫,輸出 binlog
#binlog-do-db=roncoo
##複製過濾: 不須要備份的數據庫, 不輸出(mysql 庫通常不一樣步)
binlog-ignore-db=mysql
## 開啓二進制日誌,以備 Slave 做爲其它 Slave 的 Master 時使用
log-bin=edu-mysql-slave1-bin
## 爲每一個 session 分配的內存,在事務過程當中用來存儲二進制日誌的緩存
binlog_cache_size = 1M
## 主從複製的格式(mixed,statement,row,默認格式是 statement)
binlog_format=mixed
## 二進制日誌自動刪除/過時的天數。默認值爲 0,表示不自動刪除。
expire_logs_days=7
## 跳過主從複製中遇到的全部錯誤或指定類型的錯誤,避免 slave 端複製中斷。
## 如: 1062 錯誤是指一些主鍵重複, 1032 錯誤是由於主從數據庫數據不一致
slave_skip_errors=1062
## relay_log 配置中繼日誌
relay_log=edu-mysql-relay-bin
## log_slave_updates 表示 slave 將複製事件寫進本身的二進制日誌
log_slave_updates=1
## 防止改變數據(除了特殊的線程)
read_only=1
主從配置總結
Master /etc/my.cnf
[mysqld]中增長
## replication
server_id=205
#binlog-do-db=roncoo
binlog-ignore-db=mysql
log-bin=edu-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
Slave /etc/my.cnf
[mysqld]中增長
## replication
server_id=206
#binlog-do-db=roncoo
binlog-ignore-db=mysql
log-bin=edu-mysql-slave1-bin
binlog_cache_size = 1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=edu-mysql-relay-bin
log_slave_updates=1
read_only=1
5.重啓從mysql服務器,登錄從myql數據庫
6.建立同步用戶(注意 master_log_file and master_log_pos)
mysql> change master to master_host='192.168.1.205', master_user='repl',
master_password='roncoo.123', master_port=3306, master_log_file='edu-mysql-bin.000001',
master_log_pos=1389, master_connect_retry=30;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
## 刷新受權表信息
mysql> flush privileges;
7.開啓監聽線程
## 查看主從同步狀態
mysql> show slave status\G;
可看到 Slave_IO_State 爲空, Slave_IO_Running 和 Slave_SQL_Running 是 No, 代表 Slave 還
沒有開始複製過程。
## 開啓主從同步
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
## 再查看主從同步狀態
mysql> show slave status\G;