MySQL的讀寫(xiě)分離配置最佳實(shí)踐
解壓包安裝MySQL
下載安裝包
打開(kāi)MySQL官網(wǎng)==>https://dev.mysql.com/downloads/mysql/5.5.html#downloads
這里有兩個(gè)版本:一個(gè)是最新版,一個(gè)是歷史版本。我用的是歷史版本
最新版本下載

選擇不登錄直接下載安裝包

或者點(diǎn)擊這里下載:http://www.fzitv.net/softs/683429.html
歷史版本

我這里選擇8.0.39安裝

我這里的版本是最新的mysql8.0.39
下載完成之后,將壓縮包進(jìn)行解壓
壓縮文件
將剛剛下載文件解壓

這里我建議大家把自己的mysql放到D盤(pán)根目錄下,防止后面出現(xiàn)問(wèn)題,自己找的時(shí)候也方便(我就踩過(guò)這個(gè)坑)
新建 my.ini文件和mysqldata文件夾

修改文件夾名稱
后面跟個(gè)端口號(hào)來(lái)區(qū)分是哪個(gè)端口號(hào)的MySQL

編寫(xiě)my.ini文件
[mysqld] # 設(shè)置3306端口 可以自己設(shè)置 port=3380 # 設(shè)置mysql的安裝目錄 basedir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380 # 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄 datadir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\mysqldata # 開(kāi)啟慢日志 slow_query_log=1 long_query_time=2 # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng) max_connect_errors=10 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION server-id=101 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine=INNODB # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=caching_sha2_password [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口 port=3380 # 設(shè)置默認(rèn)字符集為UTF8MB4 default-character-set=utf8mb4
注意修改文件路徑:basedir與datadir,端口號(hào),server-id=唯一
初始化密碼
cmd打開(kāi)dos命令,以管理員身份運(yùn)行,注意一定要用管理員身份運(yùn)行否則生成的初始化密碼可能不能用。

執(zhí)行 mysqld --defaults-file=D:\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\my.ini --initialize --console目錄改為自己的,初始化數(shù)據(jù)庫(kù)存儲(chǔ)目錄。

記住臨時(shí)生成的密碼,例如:aX!E7T/-+EQB
創(chuàng)建服務(wù)
使用命令創(chuàng)建服務(wù),mysqld install MySQL3380 --defaults-file=D:\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\my.ini
注意修改端口號(hào)和路徑
結(jié)果如下

打開(kāi)計(jì)算機(jī)管理

看到有MySQL3380即可

如果服務(wù)安裝有問(wèn)題,刪除服務(wù)命令:
mysqld -remove 服務(wù)名
啟動(dòng)

重置密碼
使用命令進(jìn)入mysql -uroot -p -P端口號(hào) ,進(jìn)入控制臺(tái)修改密碼,這個(gè)密碼是上面初始化的密碼。

登錄后如下

輸入如下命令初始化密碼為rootALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

刷新flush privileges;即可使用
注意不刷新不能用
刷新過(guò)后結(jié)果如下

到此命令行窗口直接關(guān)閉即可
navicat連接數(shù)據(jù)庫(kù)
密碼是root
端口號(hào)是3380


再來(lái)一個(gè)3381
根據(jù)上述的步驟再安裝一個(gè)3381的

注意!! !!! !!! !!! !!! !!! !!!
你的mysql3381配置文件中的server-id這個(gè)值一定要和mysql8080的值不一樣,否則你的讀寫(xiě)分離時(shí)從庫(kù)的Slave_IO_Running值為No
將自動(dòng)啟動(dòng)改為手動(dòng)啟動(dòng)
每次開(kāi)機(jī)自啟動(dòng)會(huì)導(dǎo)致開(kāi)機(jī)卡頓,所以改為手動(dòng)。


結(jié)果如下:

MYSQL實(shí)現(xiàn)讀寫(xiě)分離
運(yùn)行sql文件
新建數(shù)據(jù)庫(kù),兩個(gè)數(shù)據(jù)庫(kù)都要新建如下的數(shù)據(jù)庫(kù)

兩個(gè)數(shù)據(jù)庫(kù)都要運(yùn)行SQL文件
/* Navicat Premium Data Transfer Source Server : MySQL3381 Source Server Type : MySQL Source Server Version : 80042 Source Host : localhost:3381 Source Schema : smbms Target Server Type : MySQL Target Server Version : 80042 File Encoding : 65001 Date: 28/10/2025 16:28:02 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for smbms_address -- ---------------------------- DROP TABLE IF EXISTS `smbms_address`; CREATE TABLE `smbms_address` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `contact` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '聯(lián)系人姓名', `addressDesc` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '收貨地址明細(xì)', `postCode` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '郵編', `tel` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '聯(lián)系人電話', `createdBy` bigint NULL DEFAULT NULL COMMENT '創(chuàng)建者', `creationDate` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '修改者', `modifyDate` datetime NULL DEFAULT NULL COMMENT '修改時(shí)間', `userId` bigint NULL DEFAULT NULL COMMENT '用戶ID', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of smbms_address -- ---------------------------- INSERT INTO `smbms_address` VALUES (1, '王麗', '北京市東城區(qū)東交民巷44號(hào)', '100010', '13678789999', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (2, '張紅麗', '北京市海淀區(qū)丹棱街3號(hào)', '100000', '18567672312', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (3, '任志強(qiáng)', '北京市東城區(qū)美術(shù)館后街23號(hào)', '100021', '13387906742', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (4, '曹穎', '北京市朝陽(yáng)區(qū)朝陽(yáng)門(mén)南大街14號(hào)', '100053', '13568902323', 1, '2016-04-13 00:00:00', NULL, NULL, 2); INSERT INTO `smbms_address` VALUES (5, '李慧', '北京市西城區(qū)三里河路南三巷3號(hào)', '100032', '18032356666', 1, '2016-04-13 00:00:00', NULL, NULL, 3); INSERT INTO `smbms_address` VALUES (6, '王國(guó)強(qiáng)', '北京市順義區(qū)高麗營(yíng)鎮(zhèn)金馬工業(yè)區(qū)18號(hào)', '100061', '13787881234', 1, '2016-04-13 00:00:00', NULL, NULL, 3); -- ---------------------------- -- Table structure for smbms_bill -- ---------------------------- DROP TABLE IF EXISTS `smbms_bill`; CREATE TABLE `smbms_bill` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `billCode` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '賬單編碼', `productName` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '商品名稱', `productDesc` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '商品描述', `productUnit` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '商品單位', `productCount` decimal(20, 2) NULL DEFAULT NULL COMMENT '商品數(shù)量', `totalPrice` decimal(20, 2) NULL DEFAULT NULL COMMENT '商品總額', `isPayment` int NULL DEFAULT NULL COMMENT '是否支付(1:未支付 2:已支付)', `createdBy` bigint NULL DEFAULT NULL COMMENT '創(chuàng)建者(userId)', `creationDate` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '更新者(userId)', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時(shí)間', `providerId` bigint NULL DEFAULT NULL COMMENT '供應(yīng)商ID', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of smbms_bill -- ---------------------------- INSERT INTO `smbms_bill` VALUES (1, 'BILL2016_001', '洗發(fā)水、護(hù)發(fā)素', '日用品-洗發(fā)、護(hù)發(fā)', '瓶', 500.00, 25000.00, 2, 1, '2014-12-14 13:02:03', NULL, NULL, 13); INSERT INTO `smbms_bill` VALUES (2, 'BILL2016_002', '香皂、肥皂、藥皂', '日用品-皂類', '塊', 1000.00, 10000.00, 2, 1, '2016-03-23 04:20:40', NULL, NULL, 13); INSERT INTO `smbms_bill` VALUES (3, 'BILL2016_003', '大豆油', '食品-食用油', '斤', 300.00, 5890.00, 2, 1, '2014-12-14 13:02:03', NULL, NULL, 6); INSERT INTO `smbms_bill` VALUES (4, 'BILL2016_004', '橄欖油', '食品-進(jìn)口食用油', '斤', 200.00, 9800.00, 2, 1, '2013-10-10 03:12:13', NULL, NULL, 7); INSERT INTO `smbms_bill` VALUES (5, 'BILL2016_005', '洗潔精', '日用品-廚房清潔', '瓶', 500.00, 7000.00, 2, 1, '2014-12-14 13:02:03', NULL, NULL, 9); INSERT INTO `smbms_bill` VALUES (6, 'BILL2016_006', '美國(guó)大杏仁', '食品-堅(jiān)果', '袋', 300.00, 5000.00, 2, 1, '2016-04-14 06:08:09', NULL, NULL, 4); INSERT INTO `smbms_bill` VALUES (7, 'BILL2016_007', '沐浴液、精油', '日用品-沐浴類', '瓶', 500.00, 23000.00, 1, 1, '2016-07-22 10:10:22', NULL, NULL, 14); INSERT INTO `smbms_bill` VALUES (8, 'BILL2016_008', '不銹鋼盤(pán)碗', '日用品-廚房用具', '個(gè)', 600.00, 6000.00, 2, 1, '2016-04-14 05:12:13', NULL, NULL, 14); INSERT INTO `smbms_bill` VALUES (9, 'BILL2016_009', '塑料杯', '日用品-杯子', '個(gè)', 350.00, 1750.00, 2, 1, '2016-02-04 11:40:20', NULL, NULL, 14); INSERT INTO `smbms_bill` VALUES (10, 'BILL2016_010', '豆瓣醬', '食品-調(diào)料', '瓶', 200.00, 2000.00, 2, 1, '2013-10-29 05:07:03', NULL, NULL, 8); INSERT INTO `smbms_bill` VALUES (11, 'BILL2016_011', '海之藍(lán)', '飲料-國(guó)酒', '瓶', 50.00, 10000.00, 1, 1, '2016-04-14 16:16:00', NULL, NULL, 1); INSERT INTO `smbms_bill` VALUES (12, 'BILL2016_012', '芝華士', '飲料-洋酒', '瓶', 20.00, 6000.00, 1, 1, '2016-09-09 17:00:00', NULL, NULL, 1); INSERT INTO `smbms_bill` VALUES (13, 'BILL2016_013', '長(zhǎng)城紅葡萄酒', '飲料-紅酒', '瓶', 60.00, 800.00, 2, 1, '2016-11-14 15:23:00', NULL, NULL, 1); INSERT INTO `smbms_bill` VALUES (14, 'BILL2016_014', '泰國(guó)香米', '食品-大米', '斤', 400.00, 5000.00, 2, 1, '2016-10-09 15:20:00', NULL, NULL, 3); INSERT INTO `smbms_bill` VALUES (15, 'BILL2016_015', '東北大米', '食品-大米', '斤', 600.00, 4000.00, 2, 1, '2016-11-14 14:00:00', NULL, NULL, 3); INSERT INTO `smbms_bill` VALUES (16, 'BILL2016_016', '可口可樂(lè)', '飲料', '瓶', 2000.00, 6000.00, 2, 1, '2012-03-27 13:03:01', NULL, NULL, 2); INSERT INTO `smbms_bill` VALUES (17, 'BILL2016_017', '脈動(dòng)', '飲料', '瓶', 1500.00, 4500.00, 2, 1, '2016-05-10 12:00:00', NULL, NULL, 2); INSERT INTO `smbms_bill` VALUES (18, 'BILL2016_018', '哇哈哈', '飲料', '瓶', 2000.00, 4000.00, 2, 1, '2015-11-24 15:12:03', NULL, NULL, 2); INSERT INTO `smbms_bill` VALUES (19, 'BILL2025_001', '醉大轉(zhuǎn)彎', '鴨腿', '只', 15.00, 4500.00, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `smbms_bill` VALUES (20, 'BILL2025_001', '醉大轉(zhuǎn)彎', '鴨腿', '只', 15.00, 4500.00, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `smbms_bill` VALUES (21, 'BILL2025_001', '醉大轉(zhuǎn)彎', NULL, '只', 15.00, 4500.00, NULL, NULL, NULL, NULL, NULL, NULL); -- ---------------------------- -- Table structure for smbms_provider -- ---------------------------- DROP TABLE IF EXISTS `smbms_provider`; CREATE TABLE `smbms_provider` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `proCode` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '供應(yīng)商編碼', `proName` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '供應(yīng)商名稱', `proDesc` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '供應(yīng)商詳細(xì)描述', `proContact` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '供應(yīng)商聯(lián)系人', `proPhone` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '聯(lián)系電話', `proAddress` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '地址', `proFax` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '傳真', `createdBy` bigint NULL DEFAULT NULL COMMENT '創(chuàng)建者(userId)', `creationDate` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時(shí)間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '更新者(userId)', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of smbms_provider -- ---------------------------- INSERT INTO `smbms_provider` VALUES (1, 'BJ_GYS001', '北京三木堂商貿(mào)有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:茅臺(tái)、五糧液、郎酒、酒鬼酒、瀘州老窖、賴茅酒、法國(guó)紅酒等', '張國(guó)強(qiáng)', '13566667777', '北京市豐臺(tái)區(qū)育芳園北路', '010-58858787', 1, '2013-03-21 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (2, 'HB_GYS001', '石家莊帥益食品貿(mào)易有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:飲料、水飲料、植物蛋白飲料、休閑食品、果汁飲料、功能飲料等', '王軍', '13309094212', '河北省石家莊新華區(qū)', '0311-67738876', 1, '2016-04-13 04:20:40', NULL, NULL); INSERT INTO `smbms_provider` VALUES (3, 'GZ_GYS001', '深圳市泰香米業(yè)有限公司', '初次合作伙伴,主營(yíng)產(chǎn)品:良記金輪米,龍輪香米等', '鄭程瀚', '13402013312', '廣東省深圳市福田區(qū)深南大道6006華豐大廈', '0755-67776212', 1, '2014-03-21 16:56:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (4, 'GZ_GYS002', '深圳市喜來(lái)客商貿(mào)有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:堅(jiān)果炒貨.果脯蜜餞.天然花茶.營(yíng)養(yǎng)豆豆.特色美食.進(jìn)口食品.海味零食.肉脯肉', '林妮', '18599897645', '廣東省深圳市福龍工業(yè)區(qū)B2棟3樓西', '0755-67772341', 1, '2013-03-22 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (5, 'JS_GYS001', '興化佳美調(diào)味品廠', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:天然香辛料、雞精、復(fù)合調(diào)味料', '徐國(guó)洋', '13754444221', '江蘇省興化市林湖工業(yè)區(qū)', '0523-21299098', 1, '2015-11-22 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (6, 'BJ_GYS002', '北京納福爾食用油有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:山茶油、大豆油、花生油、橄欖油等', '馬鶯', '13422235678', '北京市朝陽(yáng)區(qū)珠江帝景1號(hào)樓', '010-588634233', 1, '2012-03-21 17:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (7, 'BJ_GYS003', '北京國(guó)糧食用油有限公司', '初次合作伙伴,主營(yíng)產(chǎn)品:花生油、大豆油、小磨油等', '王馳', '13344441135', '北京大興青云店開(kāi)發(fā)區(qū)', '010-588134111', 1, '2016-04-13 00:00:00', NULL, NULL); INSERT INTO `smbms_provider` VALUES (8, 'ZJ_GYS001', '慈溪市廣和綠色食品廠', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:豆瓣醬、黃豆醬、甜面醬,辣椒,大蒜等農(nóng)產(chǎn)品', '薛圣丹', '18099953223', '浙江省寧波市慈溪周巷小安村', '0574-34449090', 1, '2013-11-21 06:02:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (9, 'GX_GYS001', '優(yōu)百商貿(mào)有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:日化產(chǎn)品', '李立國(guó)', '13323566543', '廣西南寧市秀廂大道42-1號(hào)', '0771-98861134', 1, '2013-03-21 19:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (10, 'JS_GYS002', '南京火頭軍信息技術(shù)有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:不銹鋼廚具等', '陳女士', '13098992113', '江蘇省南京市浦口區(qū)浦口大道1號(hào)新城總部大廈A座903室', '025-86223345', 1, '2013-03-25 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (11, 'GZ_GYS003', '廣州市白云區(qū)美星五金制品廠', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:海綿床墊、坐墊、靠墊、海綿枕頭、頭枕等', '梁天', '13562276775', '廣州市白云區(qū)鐘落潭鎮(zhèn)福龍路20號(hào)', '020-85542231', 1, '2016-12-21 06:12:17', NULL, NULL); INSERT INTO `smbms_provider` VALUES (12, 'BJ_GYS004', '北京隆盛日化科技', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:日化環(huán)保清洗劑,家居洗滌專賣(mài)、洗滌用品網(wǎng)、墻體除霉劑、墻面霉菌清除劑等', '孫欣', '13689865678', '北京市大興區(qū)舊宮', '010-35576786', 1, '2014-11-21 12:51:11', NULL, NULL); INSERT INTO `smbms_provider` VALUES (13, 'SD_GYS001', '山東豪克華光聯(lián)合發(fā)展有限公司', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:洗衣皂、洗衣粉、洗衣液、洗潔精、消殺類、香皂等', '吳洪轉(zhuǎn)', '13245468787', '山東濟(jì)陽(yáng)濟(jì)北工業(yè)區(qū)仁和街21號(hào)', '0531-53362445', 1, '2015-01-28 10:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (14, 'JS_GYS003', '無(wú)錫喜源坤商行', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:日化品批銷', '周一清', '18567674532', '江蘇無(wú)錫盛岸西路', '0510-32274422', 1, '2016-04-23 11:11:11', NULL, NULL); INSERT INTO `smbms_provider` VALUES (15, 'ZJ_GYS002', '樂(lè)擺日用品廠', '長(zhǎng)期合作伙伴,主營(yíng)產(chǎn)品:各種中、高檔塑料杯,塑料樂(lè)扣水杯(密封杯)、保鮮杯(保鮮盒)、廣告杯、禮品杯', '王世杰', '13212331567', '浙江省金華市義烏市義東路', '0579-34452321', 1, '2016-08-22 10:01:30', NULL, NULL); INSERT INTO `smbms_provider` VALUES (16, '22', '22', '22', NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL); -- ---------------------------- -- Table structure for smbms_role -- ---------------------------- DROP TABLE IF EXISTS `smbms_role`; CREATE TABLE `smbms_role` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `roleCode` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '角色編碼', `roleName` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '角色名稱', `createdBy` bigint NULL DEFAULT NULL COMMENT '創(chuàng)建者', `creationDate` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '修改者', `modifyDate` datetime NULL DEFAULT NULL COMMENT '修改時(shí)間', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of smbms_role -- ---------------------------- INSERT INTO `smbms_role` VALUES (1, 'SMBMS_ADMIN', '系統(tǒng)管理員', 1, '2016-04-13 00:00:00', NULL, NULL); INSERT INTO `smbms_role` VALUES (2, 'SMBMS_MANAGER', '經(jīng)理', 1, '2016-04-13 00:00:00', NULL, NULL); INSERT INTO `smbms_role` VALUES (3, 'SMBMS_EMPLOYEE', '普通員工', 1, '2016-04-13 00:00:00', NULL, NULL); -- ---------------------------- -- Table structure for smbms_user -- ---------------------------- DROP TABLE IF EXISTS `smbms_user`; CREATE TABLE `smbms_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `userCode` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '用戶編碼', `userName` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '用戶名稱', `userPassword` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '用戶密碼', `gender` int NULL DEFAULT NULL COMMENT '性別(1:女、 2:男)', `birthday` date NULL DEFAULT NULL COMMENT '出生日期', `phone` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '手機(jī)', `address` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL COMMENT '地址', `userRole` bigint NULL DEFAULT NULL COMMENT '用戶角色(取自角色表-角色id)', `createdBy` bigint NULL DEFAULT NULL COMMENT '創(chuàng)建者(userId)', `creationDate` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '更新者(userId)', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時(shí)間', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of smbms_user -- ---------------------------- INSERT INTO `smbms_user` VALUES (1, 'admin', '系統(tǒng)管理員', '1234567', 2, '1983-10-10', '13688889999', '北京市海淀區(qū)成府路207號(hào)', 2, 1, '2013-03-21 16:52:07', NULL, '2025-09-18 14:24:43'); INSERT INTO `smbms_user` VALUES (2, 'liming', '李明', '0000000', 2, '1983-12-10', '13688884457', '北京市東城區(qū)前門(mén)東大街9號(hào)', 2, 1, '2014-12-31 19:52:09', NULL, NULL); INSERT INTO `smbms_user` VALUES (5, 'hanlubiao', '韓路彪', '0000000', 2, '1984-06-05', '18567542321', '北京市朝陽(yáng)區(qū)北辰中心12號(hào)', 2, 1, '2014-12-31 19:52:09', NULL, NULL); INSERT INTO `smbms_user` VALUES (6, 'zhanghua', '張華', '0000000', 1, '1983-06-15', '13544561111', '北京市海淀區(qū)學(xué)院路61號(hào)', 3, 1, '2013-02-11 10:51:17', NULL, NULL); INSERT INTO `smbms_user` VALUES (7, 'wangyang', '王洋', '0000000', 2, '1982-12-31', '13444561124', '北京市海淀區(qū)西二旗輝煌國(guó)際16層', 3, 1, '2014-06-11 19:09:07', NULL, NULL); INSERT INTO `smbms_user` VALUES (8, 'zhaoyan', '趙燕', '0000000', 1, '1986-03-07', '18098764545', '北京市海淀區(qū)回龍觀小區(qū)10號(hào)樓', 3, 1, '2016-04-21 13:54:07', NULL, NULL); INSERT INTO `smbms_user` VALUES (10, 'sunlei', '孫磊', '0000000', 2, '1981-01-04', '13387676765', '北京市朝陽(yáng)區(qū)管莊新月小區(qū)12樓', 3, 1, '2015-05-06 10:52:07', NULL, NULL); INSERT INTO `smbms_user` VALUES (11, 'sunxing', '孫興', '0000000', 2, '1978-03-12', '13367890900', '北京市朝陽(yáng)區(qū)建國(guó)門(mén)南大街10號(hào)', 3, 1, '2016-11-09 16:51:17', NULL, NULL); INSERT INTO `smbms_user` VALUES (12, 'zhangchen', '張晨', '0000000', 1, '1986-03-28', '18098765434', '朝陽(yáng)區(qū)管莊路口北柏林愛(ài)樂(lè)三期13號(hào)樓', 3, 1, '2016-08-09 05:52:37', 1, '2016-04-14 14:15:36'); INSERT INTO `smbms_user` VALUES (13, 'dengchao', '鄧超', '0000000', 2, '1981-11-04', '13689674534', '北京市海淀區(qū)北航家屬院10號(hào)樓', 3, 1, '2016-07-11 08:02:47', NULL, NULL); INSERT INTO `smbms_user` VALUES (14, 'yangguo', '楊過(guò)', '0000000', 2, '1980-01-01', '13388886623', '北京市朝陽(yáng)區(qū)北苑家園茉莉園20號(hào)樓', 3, 1, '2015-02-01 03:52:07', NULL, NULL); INSERT INTO `smbms_user` VALUES (15, 'zhaomin', '趙敏', '0000000', 1, '1987-12-04', '18099897657', '北京市昌平區(qū)天通苑3區(qū)12號(hào)樓', 2, 1, '2015-09-12 12:02:12', NULL, NULL); INSERT INTO `smbms_user` VALUES (17, '林品如', 'drgdrg', NULL, 2, '2025-09-09', '18754569847', 'hvtyuhguy', 2, NULL, '2025-09-17 18:07:00', NULL, '2025-09-17 18:07:25'); SET FOREIGN_KEY_CHECKS = 1;

修改主庫(kù)3380數(shù)據(jù)庫(kù)
修改my.ini文件
3380為主,3381為從
修改3380中my.ini文件信息
在D盤(pán)新建mysql8.0log文件夾

添加如下代碼
# log-bin需要在D盤(pán)下創(chuàng)建文件夾mysql8.0log用于存儲(chǔ)日志文件信息 log-bin=D:\mysql8.0log\mysql-bin # binlog-do-db 為要主從的數(shù)據(jù)庫(kù)名 binlog-do-db=smbms
上面配置放的位置如下
[mysqld] # 設(shè)置3306端口 可以自己設(shè)置 port=3380 # 設(shè)置mysql的安裝目錄 basedir=D:\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380 # 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄 datadir=D:\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\mysqldata # 開(kāi)啟慢日志 slow_query_log=1 long_query_time=2 # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng) max_connect_errors=10 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION server-id=101 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine=INNODB # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=caching_sha2_password # log-bin需要在D盤(pán)下創(chuàng)建文件夾mysql8.0log用于存儲(chǔ)日志文件信息 log-bin=D:\mysql8.0log\mysql-bin # binlog-do-db 為要主從的數(shù)據(jù)庫(kù)名 binlog-do-db=smbms binlog_format = ROW [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口 port=3380 # 設(shè)置默認(rèn)字符集為UTF8MB4 default-character-set=utf8mb4
重啟服務(wù)
打開(kāi)計(jì)算機(jī)管理重啟服務(wù)

在mysql8.0log文件中會(huì)有如下的文件。

查看日志信息
打開(kāi)navicat輸入show master status;
注意這個(gè)信息 從庫(kù) 要用,所以這個(gè)界面先別關(guān)閉。

修改從庫(kù)3381數(shù)據(jù)庫(kù)
修改my.ini文件
修改3381中的my.ini文件,并重啟服務(wù)
添加如下代碼
log-bin=D:\\mysql8.0log\mysql-bin # 如果你的電腦沒(méi)有使用導(dǎo)向式安裝過(guò)MySQL使用下面注釋的這兩條語(yǔ)句 # replicate-do-db=smbms # log-slave-updates # 如果你的電腦使用解壓包的方式安裝MySQL使用這個(gè),我們上面就是解壓包的方式安裝的。 binlog-do-db=smbms #從庫(kù)只讀,防止誤寫(xiě) read_only=?ON?
上面配置的區(qū)別
replicate-do-db+ log-slave-updates:當(dāng)您的從庫(kù)(B)自身也作為其他從庫(kù)(C)的主庫(kù)時(shí),需要使用此組合。這確保了從主庫(kù)同步到B庫(kù)的smbms數(shù)據(jù)庫(kù)的更改,能被B庫(kù)記錄下來(lái)并繼續(xù)傳遞給C庫(kù)。這種架構(gòu)稱為級(jí)聯(lián)復(fù)制。
binlog-do-db+ read_only:此組合用于標(biāo)準(zhǔn)的單向主從架構(gòu)。在主庫(kù)上通過(guò)binlog-do-db限定只同步smbms庫(kù),在從庫(kù)上設(shè)置read_only防止誤操作。需要注意的是,在主庫(kù)上使用binlog-do-db進(jìn)行過(guò)濾,所有操作和過(guò)濾的負(fù)載都集中在主庫(kù)上。
上面配置放的位置如下
[mysqld] # 設(shè)置3306端口 可以自己設(shè)置 port=3381 # 設(shè)置mysql的安裝目錄 basedir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3381 # 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄 datadir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3381\mysqldata # 開(kāi)啟慢日志 slow_query_log=1 long_query_time=2 # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng) max_connect_errors=10 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION server-id=101 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine=INNODB # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=caching_sha2_password # 從庫(kù)配置 log-bin=D:\\mysql8.0log\mysql-bin replicate-do-db=smbms log-slave-updates [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口 port=3381 # 設(shè)置默認(rèn)字符集為UTF8MB4 default-character-set=utf8mb4
重啟服務(wù)

信息綁定
navicat打開(kāi)3381數(shù)據(jù)庫(kù),并進(jìn)行信息綁定

依次執(zhí)行下面命令,注意要一條指令一條指令的跑。
stop slave; # 127.0.0.1為主數(shù)據(jù)庫(kù)IP # master_port: 主數(shù)據(jù)庫(kù)端口 # master_user: 主數(shù)據(jù)庫(kù)用戶 # master_password: 主數(shù)據(jù)庫(kù)密碼 # master_log_file: 主數(shù)據(jù)庫(kù) 執(zhí)行show master status;查看的 File 字段值 # master_log_pos: 主數(shù)據(jù)庫(kù) 執(zhí)行show master status;查看的 Position 字段值 change master to master_host='127.0.0.1', master_port=3380, master_user='root', master_password='root', master_log_file='mysql-bin.000001', master_log_pos=157; start slave; show slave status; # 查看是否連接 若使用dos命令 使用show slave status\G;
執(zhí)行最后一條語(yǔ)句結(jié)果如下:只要出現(xiàn)Slave_IO_Running和Slave_SQL_Running

出現(xiàn)的問(wèn)題
注意!! !!! !!! !!! !!! !!! !!!
你的mysql3381配置文件中的server-id這個(gè)值一定要和mysql8080的值不一樣,你可以改為server-id=102。
如果server-id這個(gè)值相同那么你的讀寫(xiě)分離時(shí)從庫(kù)的Slave_IO_Running值為No
測(cè)試
修改主庫(kù)的smbms數(shù)據(jù)庫(kù)的隨便一張表的數(shù)據(jù)。

對(duì)應(yīng)的MySQL3381的smbms的數(shù)據(jù)庫(kù)表也會(huì)修改

總結(jié)
到此這篇關(guān)于MySQL的讀寫(xiě)分離配置的文章就介紹到這了,更多相關(guān)MySQL讀寫(xiě)分離配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IPv6設(shè)置后如何解決MySQL無(wú)法連接localhost的問(wèn)題
這篇文章主要介紹了IPv6設(shè)置后如何解決MySQL無(wú)法連接localhost的問(wèn)題,需要的朋友可以參考下2016-04-04
Centos6.4編譯安裝mysql 8.0.0 詳細(xì)教程
這篇文章主要為大家分享了Centos6.4編譯安裝mysql 8.0.0 詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問(wèn)題
這篇文章主要介紹了MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問(wèn)題 ,需要的朋友可以參考下2019-07-07
MySQL 調(diào)優(yōu)的實(shí)戰(zhàn)思路
文章總結(jié)了MySQL調(diào)優(yōu)的過(guò)程,包括從確認(rèn)問(wèn)題到解決的步驟,首先,需要度量問(wèn)題,然后從SQL、索引、配置和系統(tǒng)等方面進(jìn)行排查和優(yōu)化,文章強(qiáng)調(diào)了SQL和索引的重要性,并提供了具體的優(yōu)化方法,最后,文章提供了一個(gè)實(shí)戰(zhàn)調(diào)優(yōu)流程,以及一些監(jiān)控和排查工具清單,感興趣的朋友一起看看吧2025-12-12
mysql 5.7.21 解壓版通過(guò)歷史data目錄恢復(fù)數(shù)據(jù)的教程圖解
本文通過(guò)圖文并茂的形式給大家介紹了mysql 5.7.21 解壓版,通過(guò)歷史data目錄恢復(fù)數(shù)據(jù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
常見(jiàn)的十種SQL語(yǔ)句性能優(yōu)化策略詳解
這篇文章主要介紹了常見(jiàn)的十種SQL語(yǔ)句性能優(yōu)化策略詳解,SQL語(yǔ)句性能優(yōu)化是提高數(shù)據(jù)庫(kù)查詢效率的關(guān)鍵步驟,可以減少查詢時(shí)間,提高系統(tǒng)響應(yīng)速度,本文將介紹一些常見(jiàn)的SQL語(yǔ)句性能優(yōu)化技巧,包括索引的使用、合理的查詢條件、避免全表掃描等,需要的朋友可以參考下2023-10-10
MYSQL數(shù)據(jù)庫(kù)連接池及常見(jiàn)參數(shù)調(diào)優(yōu)方式
這篇文章主要介紹了MYSQL數(shù)據(jù)庫(kù)連接池及常見(jiàn)參數(shù)調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06


