mysql主從配置(5分鐘解決問題)

條件:一臺阿里雲服務器(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;

相關文章
相關標籤/搜索