MySQL數據庫中如何實現主從服務器文檔的部署呢?主從服務器之間怎樣進行文檔切換呢?本文我們主要就介紹了這一部分的內容,接下來我們就開始介紹。
一、部署文檔
1.確保在主服務器和從服務器上安裝的MySQL版本一致.
2.在主服務器上為從服務器設置一個連接賬戶
mysql GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO 'username'@10.1.1.4' IDENTIFIED BY 'use。
主服務器IP: 10.1.1.3
從服務器IP: 10.1.1.4
1.確保在主服務器和從服務器上安裝的MySQL版本一致.
2.在主服務器上為從服務器設置一個連接賬戶
- mysql> GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO IDENTIF
- IED BY 'userpassword';
3. 執行FLUSH TABLES WITH READ LOCK 進行鎖表
- mysql> FLUSH TABLES WITH READ LOCK;
4. 讓客戶程序保持運行,發出FLUSH TABLES語句讓讀鎖定保持有效。(如果退出客戶程序,鎖被釋放)。進入主服務器的數據目錄,然後執行命令:
- shell> tar -cvf /tmp/mysql-snapshot.tar .
- shell> tar -xvf /tmp/mysql-snapshot.tar
讀取主服務器上當前的二進制日志名File)和偏移量值(Position),並記錄下來:
mysql > SHOW MASTER STATUS; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | mysql-bin.003 | 73 | test | manual,mysql | 取得快照並記錄日志名和偏移量後,可以在主服務器上重新啟用寫活動:
mysql> UNLOCK TABLES;
5. 確保主服務器主機上my.cnf文件的[mysqld]部分包括一個log_bin選項
- [mysqld]
- Log_bin=mysql-bin
- server-id=1
6. 停止用於從服務器的服務器並在其my.cnf文件中添加下面的行:
- [mysqld]
- server-id=2
7.如果對主服務器的數據進行二進制備份,啟動從服務器之前將它復制到從服務器的數據目錄中。
確保對這些文件和目錄的權限正確。服務器 MySQL運行的用戶必須能夠讀寫文件,如同在主服務器上一樣。
8. 用--skip-slave-start選項啟動從服務器,以便它不立即嘗試連接主服務器。
9. 在從服務器上執行下面的語句:
- mysql> CHANGE MASTER TO MASTER_HOST='10.1.1.3',MASTER_USER='username',MASTER_PASSWORD='userpassword',
- MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=recorded_log_position;
9. 啟動從服務器線程:
mysql> START SLAVE;
10.驗證部署是否成功
- mysql> show slave status\G
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 10.1.1.3
- Master_User: rep_slave
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.000058
- Read_Master_Log_Pos: 27324573
- Relay_Log_File: cacti-11-111-relay-bin.000008
- Relay_Log_Pos: 27324718
- Relay_Master_Log_File: mysql-bin.000058
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Replicate_Do_DB:
- Replicate_Ignore_DB: mysql
- 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: 27324573
- Relay_Log_Space: 27325025
- 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
- 1 row in set (0.00 sec)
當Slave_IO_Running和Slave_SQL_Running都顯示Yes的時候,表示同步成功。
二、切換文檔
1. 確保從服務器已經處理了中繼日志中的所有語句。 mysql> STOP SLAVE IO_THREAD。
2.然後檢查SHOW PROCESSLIST語句的輸出,直到你看到Has read all relay log。
3.當從服務器都執行完這些,它們可以被重新配置為一個新的設置。
4.在被提升為主服務器的從服務器上,發出 STOP SLAVE和RESET MASTER和RESET SLAVE操作。
5. 然後重啟mysql服務。
6.在主服務器上RESET MASTER。然後CHANGE MASTER TO MASTER_HOST='10.1.1.4',MASTER_USER='rep_slave',MASTER_PASSWORD='userpassword';切換完成。
關於MySQL數據庫主從服務器文檔的部署及主從文檔切換的知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲。