添加新數(shù)據(jù)庫(kù)到MySQL主從復(fù)制列表的詳細(xì)步驟
環(huán)境準(zhǔn)備
主服務(wù)器(Master)
- IP: 192.168.1.100
- MySQL版本: 5.7.31
從服務(wù)器(Slave)
- IP: 192.168.1.101
- MySQL版本: 5.7.31
確保主從服務(wù)器的時(shí)間同步,并且MySQL版本一致,以避免因版本不一致導(dǎo)致的復(fù)制問題。
步驟一:在主服務(wù)器上創(chuàng)建新數(shù)據(jù)庫(kù)
首先,登錄到主服務(wù)器的MySQL控制臺(tái):
mysql -u root -p
創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù):
CREATE DATABASE new_database;
步驟二:設(shè)置主服務(wù)器的復(fù)制權(quán)限
確保從服務(wù)器有權(quán)限訪問主服務(wù)器上的新數(shù)據(jù)庫(kù)。如果還沒有設(shè)置復(fù)制用戶,可以創(chuàng)建一個(gè):
CREATE USER 'repl'@'192.168.1.101' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101'; FLUSH PRIVILEGES;
步驟三:鎖定主數(shù)據(jù)庫(kù)并獲取二進(jìn)制日志位置
為了確保數(shù)據(jù)的一致性,在添加新數(shù)據(jù)庫(kù)時(shí)需要暫時(shí)鎖定主數(shù)據(jù)庫(kù):
FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
記錄下??File?
?和??Position?
?的值,這些信息將在從服務(wù)器上配置復(fù)制時(shí)使用。
步驟四:導(dǎo)出新數(shù)據(jù)庫(kù)的數(shù)據(jù)
使用??mysqldump?
?工具導(dǎo)出新數(shù)據(jù)庫(kù)的數(shù)據(jù):
mysqldump -u root -p --databases new_database > /path/to/backup/new_database.sql
步驟五:解鎖主數(shù)據(jù)庫(kù)
完成數(shù)據(jù)導(dǎo)出后,解鎖主數(shù)據(jù)庫(kù):
UNLOCK TABLES;
步驟六:在從服務(wù)器上導(dǎo)入數(shù)據(jù)
將導(dǎo)出的數(shù)據(jù)文件傳輸?shù)綇姆?wù)器,并導(dǎo)入到MySQL中:
scp /path/to/backup/new_database.sql user@192.168.1.101:/path/to/backup/
登錄到從服務(wù)器的MySQL控制臺(tái):
mysql -u root -p
創(chuàng)建相同名稱的數(shù)據(jù)庫(kù)并導(dǎo)入數(shù)據(jù):
CREATE DATABASE new_database; SOURCE /path/to/backup/new_database.sql;
步驟七:配置從服務(wù)器的復(fù)制
編輯從服務(wù)器的MySQL配置文件(通常位于??/etc/mysql/my.cnf?
?或??/etc/my.cnf?
?),確保以下參數(shù)正確配置:
[mysqld] server-id=2 relay-log=mysql-relay-bin log_bin=mysql-bin binlog_do_db=new_database
重啟MySQL服務(wù)以應(yīng)用更改:
sudo systemctl restart mysql
步驟八:?jiǎn)?dòng)從服務(wù)器的復(fù)制
登錄到從服務(wù)器的MySQL控制臺(tái),配置并啟動(dòng)復(fù)制:
CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234; START SLAVE;
其中,??MASTER_LOG_FILE?
?和??MASTER_LOG_POS?
?的值是在步驟三中記錄的二進(jìn)制日志文件名和位置。
步驟九:驗(yàn)證復(fù)制狀態(tài)
檢查從服務(wù)器的復(fù)制狀態(tài),確保一切正常:
SHOW SLAVE STATUS\G
重點(diǎn)關(guān)注以下幾個(gè)字段:
- ?
?Slave_IO_Running?
?: 應(yīng)該顯示為??Yes?
? - ?
?Slave_SQL_Running?
?: 應(yīng)該顯示為??Yes?
? - ?
?Last_Error?
?: 應(yīng)該為空
通過以上步驟,您可以在現(xiàn)有的MySQL主從復(fù)制環(huán)境中成功添加新的數(shù)據(jù)庫(kù)。確保每一步都仔細(xì)操作,并在遇到問題時(shí)及時(shí)查看日志和錯(cuò)誤信息。這篇文章詳細(xì)介紹了如何在MySQL主從復(fù)制環(huán)境中添加新的數(shù)據(jù)庫(kù),包括環(huán)境準(zhǔn)備、數(shù)據(jù)庫(kù)創(chuàng)建、權(quán)限設(shè)置、數(shù)據(jù)導(dǎo)出與導(dǎo)入、以及復(fù)制配置等關(guān)鍵步驟。希望對(duì)讀者在實(shí)際操作中有所幫助。在MySQL的主從復(fù)制配置中,添加新的數(shù)據(jù)庫(kù)到現(xiàn)有的主從復(fù)制列表是一個(gè)常見的需求。這通常涉及到幾個(gè)步驟:在主服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù)、確保該數(shù)據(jù)庫(kù)的數(shù)據(jù)被正確地復(fù)制到從服務(wù)器,并驗(yàn)證復(fù)制是否成功。以下是一個(gè)具體的示例,展示如何實(shí)現(xiàn)這一過程。
前提條件
- 已有MySQL主從復(fù)制環(huán)境:假設(shè)你已經(jīng)設(shè)置了一個(gè)MySQL主從復(fù)制環(huán)境,包括一個(gè)主服務(wù)器(Master)和至少一個(gè)從服務(wù)器(Slave)。
- MySQL訪問權(quán)限:你需要有對(duì)主服務(wù)器和從服務(wù)器的適當(dāng)訪問權(quán)限,以便執(zhí)行SQL命令。
步驟 1: 在主服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù)
首先,登錄到你的MySQL主服務(wù)器,并創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。例如,創(chuàng)建一個(gè)名為??new_database?
?的數(shù)據(jù)庫(kù):
CREATE DATABASE new_database;
步驟 2: 確保數(shù)據(jù)被復(fù)制到從服務(wù)器
默認(rèn)情況下,如果主從復(fù)制配置正確,新創(chuàng)建的數(shù)據(jù)庫(kù)會(huì)自動(dòng)被復(fù)制到所有從服務(wù)器。但是,為了確保這一點(diǎn),你可以檢查主服務(wù)器的復(fù)制配置文件(通常是??my.cnf??或??my.ini??),確保沒有排除新的數(shù)據(jù)庫(kù)。配置文件中的相關(guān)部分可能看起來像這樣:
[mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=new_database
- ?
?binlog-do-db?
?指定了需要記錄二進(jìn)制日志的數(shù)據(jù)庫(kù)。如果要復(fù)制所有數(shù)據(jù)庫(kù),可以省略此行。 - 如果你的配置中使用了?
?binlog-ignore-db?
?來排除某些數(shù)據(jù)庫(kù),則需要確保新數(shù)據(jù)庫(kù)不在排除列表中。
步驟 3: 檢查從服務(wù)器上的數(shù)據(jù)庫(kù)
在從服務(wù)器上登錄MySQL,檢查新數(shù)據(jù)庫(kù)是否已成功復(fù)制:
SHOW DATABASES;
你應(yīng)該能在列出的數(shù)據(jù)庫(kù)中看到??new_database?
?。如果看不到,可以嘗試手動(dòng)啟動(dòng)復(fù)制進(jìn)程:
START SLAVE;
然后再次檢查數(shù)據(jù)庫(kù)列表。
步驟 4: 驗(yàn)證數(shù)據(jù)復(fù)制
為了進(jìn)一步驗(yàn)證數(shù)據(jù)是否正在從主服務(wù)器復(fù)制到從服務(wù)器,可以在主服務(wù)器上向新數(shù)據(jù)庫(kù)中添加一些測(cè)試數(shù)據(jù):
USE new_database; CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50)); INSERT INTO test_table (name) VALUES ('Test Entry');
然后,在從服務(wù)器上查詢相同的表,以確認(rèn)數(shù)據(jù)已經(jīng)被復(fù)制:
USE new_database; SELECT * FROM test_table;
如果一切正常,你應(yīng)該能看到在主服務(wù)器上插入的相同數(shù)據(jù)。
注意事項(xiàng)
- 備份:在進(jìn)行任何更改之前,建議先備份重要數(shù)據(jù)。
- 監(jiān)控:在生產(chǎn)環(huán)境中,建議持續(xù)監(jiān)控主從復(fù)制的狀態(tài),確保沒有延遲或錯(cuò)誤發(fā)生。
- 權(quán)限管理:確保用戶具有足夠的權(quán)限來執(zhí)行上述操作。
通過以上步驟,你可以成功地將新的數(shù)據(jù)庫(kù)添加到現(xiàn)有的MySQL主從復(fù)制環(huán)境中。在MySQL中設(shè)置主從復(fù)制(Master-Slave Replication)是一個(gè)常見的操作,用于提高數(shù)據(jù)的可靠性和可用性。當(dāng)需要將一個(gè)新的數(shù)據(jù)庫(kù)添加到現(xiàn)有的主從復(fù)制配置中時(shí),通常需要確保這個(gè)新的數(shù)據(jù)庫(kù)能夠在主服務(wù)器上被正確地創(chuàng)建和同步到從服務(wù)器。以下步驟將詳細(xì)介紹如何完成這一過程:
1. 在主服務(wù)器上創(chuàng)建新的數(shù)據(jù)庫(kù)
首先,在主服務(wù)器上登錄MySQL并創(chuàng)建新的數(shù)據(jù)庫(kù)。
mysql -u root -p
輸入密碼后,執(zhí)行以下SQL命令來創(chuàng)建新的數(shù)據(jù)庫(kù):
CREATE DATABASE new_database;
2. 配置主服務(wù)器的復(fù)制選項(xiàng)
確保主服務(wù)器已經(jīng)配置了二進(jìn)制日志記錄(Binary Logging),因?yàn)檫@是實(shí)現(xiàn)復(fù)制的基礎(chǔ)。檢查或修改??my.cnf?
?(或??my.ini?
?在Windows系統(tǒng)上)文件,確保包含以下配置:
[mysqld] server-id=1 log-bin=mysql-bin binlog-format=mixed
重啟MySQL服務(wù)以應(yīng)用更改:
sudo systemctl restart mysql
3. 創(chuàng)建用于復(fù)制的用戶
如果還沒有創(chuàng)建用于復(fù)制的用戶,可以在主服務(wù)器上創(chuàng)建一個(gè):
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; FLUSH PRIVILEGES;
4. 獲取主服務(wù)器的狀態(tài)
在主服務(wù)器上執(zhí)行以下命令來獲取當(dāng)前的二進(jìn)制日志位置:
SHOW MASTER STATUS;
記下??File?
?和??Position?
?字段的值,這些信息將在從服務(wù)器配置中使用。
5. 在從服務(wù)器上配置復(fù)制
登錄到從服務(wù)器上的MySQL,并使用以下命令來設(shè)置從服務(wù)器連接到主服務(wù)器:
CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
替換上述命令中的??master_server_ip?
?、??recorded_log_file_name?
?和??recorded_log_position?
?為從主服務(wù)器獲取的實(shí)際值。
6. 啟動(dòng)從服務(wù)器的復(fù)制進(jìn)程
在從服務(wù)器上啟動(dòng)復(fù)制進(jìn)程:
START SLAVE;
7. 檢查復(fù)制狀態(tài)
在從服務(wù)器上檢查復(fù)制狀態(tài)以確保一切正常:
SHOW SLAVE STATUS\G
查看輸出中的??Slave_IO_Running??和??Slave_SQL_Running??字段是否都顯示為??Yes??,這表明復(fù)制正在正常工作。
8. 在從服務(wù)器上創(chuàng)建相同的數(shù)據(jù)庫(kù)
為了確保數(shù)據(jù)的一致性,你可能還需要在從服務(wù)器上手動(dòng)創(chuàng)建相同的新數(shù)據(jù)庫(kù),或者讓復(fù)制進(jìn)程自動(dòng)處理這一點(diǎn)。如果你選擇手動(dòng)創(chuàng)建,可以執(zhí)行:
CREATE DATABASE new_database;
注意事項(xiàng)
- 確保主從服務(wù)器之間的網(wǎng)絡(luò)連接穩(wěn)定。
- 定期檢查復(fù)制狀態(tài),確保沒有延遲或錯(cuò)誤。
- 如果遇到復(fù)制問題,可以嘗試停止從服務(wù)器的復(fù)制進(jìn)程,重新配置?
?CHANGE MASTER TO?
?命令,然后再次啟動(dòng)復(fù)制。
通過以上步驟,你應(yīng)該能夠成功地將一個(gè)新數(shù)據(jù)庫(kù)添加到MySQL的主從復(fù)制配置中。
以上就是添加新數(shù)據(jù)庫(kù)到MySQL主從復(fù)制列表的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于添加新數(shù)據(jù)庫(kù)到MySQL主從復(fù)制列表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
CentOS 7中升級(jí)MySQL 5.7.23的坑與解決方法
我們?cè)诎惭b升級(jí)的時(shí)候會(huì)遇到一些問題,不過可能每個(gè)人遇到的問題不一樣,多找找才能解決問題喲,下面這篇文章主要給大家介紹了關(guān)于在CentOS 7中升級(jí)MySQL 5.7.23遇到的一個(gè)坑與解決方法,需要的朋友可以參考下2018-10-10MySQL中having和where的區(qū)別及應(yīng)用詳解
這篇文章主要給大家詳細(xì)介紹了MySQL中having和where的區(qū)別以及他們的使用方法,文中有相關(guān)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-06-06deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫(kù)的方法步驟
這篇文章主要給大家介紹了在deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫(kù)的方法步驟,文中通過圖文介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04centos7環(huán)境下二進(jìn)制安裝包安裝 mysql5.6的方法詳解
這篇文章主要介紹了centos7環(huán)境下二進(jìn)制安裝包安裝 mysql5.6的方法,詳細(xì)分析了centos7環(huán)境下使用二進(jìn)制安裝包安裝 mysql5.6的具體步驟、相關(guān)命令、配置方法及操作注意事項(xiàng),需要的朋友可以參考下2020-02-02mysql之連接超時(shí)wait_timeout問題及解決方案
這篇文章主要介紹了mysql之連接超時(shí)wait_timeout問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01