Freebsd 8.3 下Mysql 主從配置
Freebsd 8.3 下Mysql 主從配置
mysql> show master status;
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000001 | 877 | | mysql,information_schema |
+------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
複製介紹:摘自 MYSQL 參考手冊
MySQL支援單向、非同步複製,複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。(這與同步複製可以進行對比,同步複製是MySQL簇的一個特徵—參見第17章:MySQL簇)。主伺服器將更新寫入二進位制日誌檔案,並維護檔案的一個索引以跟蹤日誌迴圈。這些日誌可以記錄傳送到從伺服器的更新。當一個從伺服器連線主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知新的更新。
如果你想要設定鏈式複製伺服器,從伺服器本身也可以充當主伺服器。
請注意當你進行復制時,所有對複製中的表的更新必須在主伺服器上進行。否則,你必須要小心,以避免使用者對主伺服器上的表進行的更新與對從伺服器上的表所進行的更新之間的衝突。
單向複製有利於健壯性、速度和系統管理:
· 主伺服器/從伺服器設定增加了健壯性。主伺服器出現問題時,你可以切換到從伺服器作為備份。
· 透過在主伺服器和從伺服器之間切分處理客戶查詢的負荷,可以得到更好的客戶響應時間。SELECT查詢可以傳送到從伺服器以降低主伺服器的查詢處理負荷。但修改資料的語句仍然應傳送到主伺服器,以便主伺服器和從伺服器保持同步。如果非更新查詢為主,該負載均衡策略很有效,但一般是更新查詢。
· 使用複製的另一個好處是可以使用一個從伺服器執行備份,而不會干擾主伺服器。在備份過程中主伺服器可以繼續處理更新
1.環境
兩臺裝好的MYSQL 版本最好一致
mysql> select version(),current_date();
+------------+----------------+
| version() | current_date() |
+------------+----------------+
| 5.5.32-log | 2013-07-18 |
+------------+----------------+
1 row in set (0.00 sec)
+------------+----------------+
| version() | current_date() |
+------------+----------------+
| 5.5.32-log | 2013-07-18 |
+------------+----------------+
1 row in set (0.00 sec)
OS:
mail# uname -a
FreeBSD mail.test.com 8.3-RELEASE FreeBSD 8.3-RELEASE #0: Mon Apr 9 21:23:18 UTC 2012 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD mail.test.com 8.3-RELEASE FreeBSD 8.3-RELEASE #0: Mon Apr 9 21:23:18 UTC 2012 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
主:192.168.20.199 從:192.168.20.222
2. 配置主伺服器
修改配置檔案
ee /usr/local/etc/my.cnf
server-id = 1 #主資料庫ID一般預設即可
log-bin=mysql-bin #log程式
binlog_format=mixed #binlog模式
三種模式來實現:基於SQL語句的複製(statement-based replication, SBR),基於行的複製(row-based replication, RBR),混合模式複製(mixed-based replication, MBR)
如果binlog採用了 MIXED 模式,那麼在以下幾種情況下會自動將binlog的模式由 SBR 模式改成 RBR 模式。
當DML語句更新一個NDB表時
當函式中包含 UUID() 時
2個及以上包含 AUTO_INCREMENT 欄位的表被更新時
行任何 INSERT DELAYED 語句時
用 UDF 時
當DML語句更新一個NDB表時
當函式中包含 UUID() 時
2個及以上包含 AUTO_INCREMENT 欄位的表被更新時
行任何 INSERT DELAYED 語句時
用 UDF 時
expire_logs_days=5 #log過期時間建議設定一個
binlog-ignore-db = mysql #忽略的db,這裡可以寫多行
binlog-ignore-db = information_schema
replicate-do-db = extmail #複製的資料庫
binlog-ignore-db = mysql #忽略的db,這裡可以寫多行
binlog-ignore-db = information_schema
replicate-do-db = extmail #複製的資料庫
修改完後重啟mysql
/usr/local/etc/rc.d/mysql-server restart
授權REPLICATION SLAVE
登入主庫
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.20.222' IDENTIFIED BY 'Abc123Q';
FLUSH TABLES WITH READ LOCK;
退出重新備份資料庫,將備份資料庫複製到從庫
mail# mysqldump -u root -p --all-databases --lock-tables=false > all12.sql
scp -P 22 all12.sql root@192.168.20.222:/home/root
檢視主庫狀態
mysql> show master status;
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000001 | 877 | | mysql,information_schema |
+------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
解鎖資料表
mysql>UNLOCK TABLES;
3.從伺服器配置
mail# ee /usr/local/etc/my.cnf
修改以下引數
server-id = 2
#注此id不要和主庫一樣 否則會報"these ids must be different for replication to work"此類的錯誤
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days=5
expire_logs_days=5
匯入資料
mysql -u root -p
重啟mysql
/usr/local/etc/rc.d/mysql-server restart
進入mysql配置mysql slave
mysql -u root -p
change master to master_host='192.168.20.199', master_port=3306, master_user='slave’, master_password='Abc123Q’, master_log_file=’mysql-bin.000001', master_log_pos=373;
#此位置master_log_pos和主庫一致
啟動 slave程式。
mysql>start slave;
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.20.199
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 877
Relay_Log_File: mail-relay-bin.000002
Relay_Log_Pos: 757
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 877
Relay_Log_Space: 912
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
ERROR:
No query specified
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.20.199
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 877
Relay_Log_File: mail-relay-bin.000002
Relay_Log_Pos: 757
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 877
Relay_Log_Space: 912
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
ERROR:
No query specified
檢查是否error,如果有error先停止slave stop slave,然後修改完後start slave
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24486203/viewspace-1712428/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql主從配置MySql
- mysql 主從配置MySql
- mysql配置主從MySql
- Linux下配置MySQL主從複製LinuxMySql
- MySQL 主從配置-之-一主一從MySql
- MySQL主從同步配置MySql主從同步
- docker mysql 主從配置DockerMySql
- mysql 5.7主從配置MySql
- Centos8.3、mysql8.0主從複製實戰記錄CentOSMySql
- MySQL雙主雙從配置MySql
- MySql 主從複製配置MySql
- MySQL主從複製配置MySql
- Centos7 下配置mysql5.6主從複製例項(一主兩從)CentOSMySql
- MySQL常用操作和主從配置MySql
- mysql主從資料庫配置MySql資料庫
- mysql主從配置(清晰的思路)MySql
- MYSQL主從複製配置(整理)MySql
- mysql雙主雙從 搭建配置MySql
- docker 配置 Mysql主從叢集DockerMySql
- mysql 5.7 GTID主從配置MySql
- MySQL主從同步配置記錄MySql主從同步
- Linux下mysql資料庫一主一從同步配置LinuxMySql資料庫
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- windows 下mysql主從複製WindowsMySql
- MySQL主從配置及mysqldump備份MySql
- 使用laradock配置mysql主從同步MySql主從同步
- 8、MySQL主從資料庫配置MySql資料庫
- mysql複製--主從複製配置MySql
- MySQL 主從架構配置詳解MySql架構
- mysql for linux 配置主從複製MySqlLinux
- mysqlbackup線上配置Mysql主從架構MySql架構
- mysql主從複製原理及配置MySql
- 【實操記錄】MySQL主從配置MySql
- MHA+MySQL主從配置實現MySQL高可用MySql
- MySQL 配置多主一從 ( 8.0.18 版本 )MySql
- MySQL 主從複製安裝部署配置MySql
- 基於Linux的mysql主從配置LinuxMySql
- 配置\清除 MySQL 主從 讀寫分離MySql