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

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

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

我這里選擇8.0.39安裝

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

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

修改文件夾名稱
后面跟個端口號來區(qū)分是哪個端口號的MySQL

編寫my.ini文件
[mysqld] # 設(shè)置3306端口 可以自己設(shè)置 port=3380 # 設(shè)置mysql的安裝目錄 basedir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380 # 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄 datadir=D:\\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\mysqldata # 開啟慢日志 slow_query_log=1 long_query_time=2 # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫系統(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)建新表時將使用的默認(rèn)存儲引擎 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ù)端時默認(rèn)使用的端口 port=3380 # 設(shè)置默認(rèn)字符集為UTF8MB4 default-character-set=utf8mb4
注意修改文件路徑:basedir與datadir,端口號,server-id=唯一
初始化密碼
cmd打開dos命令,以管理員身份運(yùn)行,注意一定要用管理員身份運(yùn)行否則生成的初始化密碼可能不能用。

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

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

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

看到有MySQL3380即可

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

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

登錄后如下

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

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

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


再來一個3381
根據(jù)上述的步驟再安裝一個3381的

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


結(jié)果如下:

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

兩個數(shù)據(jù)庫都要運(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)建時間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '修改者', `modifyDate` datetime NULL DEFAULT NULL COMMENT '修改時間', `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號', '100010', '13678789999', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (2, '張紅麗', '北京市海淀區(qū)丹棱街3號', '100000', '18567672312', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (3, '任志強(qiáng)', '北京市東城區(qū)美術(shù)館后街23號', '100021', '13387906742', 1, '2016-04-13 00:00:00', NULL, NULL, 1); INSERT INTO `smbms_address` VALUES (4, '曹穎', '北京市朝陽區(qū)朝陽門南大街14號', '100053', '13568902323', 1, '2016-04-13 00:00:00', NULL, NULL, 2); INSERT INTO `smbms_address` VALUES (5, '李慧', '北京市西城區(qū)三里河路南三巷3號', '100032', '18032356666', 1, '2016-04-13 00:00:00', NULL, NULL, 3); INSERT INTO `smbms_address` VALUES (6, '王國強(qiáng)', '北京市順義區(qū)高麗營鎮(zhèn)金馬工業(yè)區(qū)18號', '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)建時間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '更新者(userId)', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時間', `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', '美國大杏仁', '食品-堅(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', '不銹鋼盤碗', '日用品-廚房用具', '個', 600.00, 6000.00, 2, 1, '2016-04-14 05:12:13', NULL, NULL, 14); INSERT INTO `smbms_bill` VALUES (9, 'BILL2016_009', '塑料杯', '日用品-杯子', '個', 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)', '飲料-國酒', '瓶', 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', '長城紅葡萄酒', '飲料-紅酒', '瓶', 60.00, 800.00, 2, 1, '2016-11-14 15:23:00', NULL, NULL, 1); INSERT INTO `smbms_bill` VALUES (14, 'BILL2016_014', '泰國香米', '食品-大米', '斤', 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', '可口可樂', '飲料', '瓶', 2000.00, 6000.00, 2, 1, '2012-03-27 13:03:01', NULL, NULL, 2); INSERT INTO `smbms_bill` VALUES (17, 'BILL2016_017', '脈動', '飲料', '瓶', 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)建時間', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時間', `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)有限公司', '長期合作伙伴,主營產(chǎn)品:茅臺、五糧液、郎酒、酒鬼酒、瀘州老窖、賴茅酒、法國紅酒等', '張國強(qiáng)', '13566667777', '北京市豐臺區(qū)育芳園北路', '010-58858787', 1, '2013-03-21 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (2, 'HB_GYS001', '石家莊帥益食品貿(mào)易有限公司', '長期合作伙伴,主營產(chǎn)品:飲料、水飲料、植物蛋白飲料、休閑食品、果汁飲料、功能飲料等', '王軍', '13309094212', '河北省石家莊新華區(qū)', '0311-67738876', 1, '2016-04-13 04:20:40', NULL, NULL); INSERT INTO `smbms_provider` VALUES (3, 'GZ_GYS001', '深圳市泰香米業(yè)有限公司', '初次合作伙伴,主營產(chǎn)品:良記金輪米,龍輪香米等', '鄭程瀚', '13402013312', '廣東省深圳市福田區(qū)深南大道6006華豐大廈', '0755-67776212', 1, '2014-03-21 16:56:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (4, 'GZ_GYS002', '深圳市喜來客商貿(mào)有限公司', '長期合作伙伴,主營產(chǎn)品:堅(jiān)果炒貨.果脯蜜餞.天然花茶.營養(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)味品廠', '長期合作伙伴,主營產(chǎn)品:天然香辛料、雞精、復(fù)合調(diào)味料', '徐國洋', '13754444221', '江蘇省興化市林湖工業(yè)區(qū)', '0523-21299098', 1, '2015-11-22 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (6, 'BJ_GYS002', '北京納福爾食用油有限公司', '長期合作伙伴,主營產(chǎn)品:山茶油、大豆油、花生油、橄欖油等', '馬鶯', '13422235678', '北京市朝陽區(qū)珠江帝景1號樓', '010-588634233', 1, '2012-03-21 17:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (7, 'BJ_GYS003', '北京國糧食用油有限公司', '初次合作伙伴,主營產(chǎn)品:花生油、大豆油、小磨油等', '王馳', '13344441135', '北京大興青云店開發(fā)區(qū)', '010-588134111', 1, '2016-04-13 00:00:00', NULL, NULL); INSERT INTO `smbms_provider` VALUES (8, 'ZJ_GYS001', '慈溪市廣和綠色食品廠', '長期合作伙伴,主營產(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)有限公司', '長期合作伙伴,主營產(chǎn)品:日化產(chǎn)品', '李立國', '13323566543', '廣西南寧市秀廂大道42-1號', '0771-98861134', 1, '2013-03-21 19:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (10, 'JS_GYS002', '南京火頭軍信息技術(shù)有限公司', '長期合作伙伴,主營產(chǎn)品:不銹鋼廚具等', '陳女士', '13098992113', '江蘇省南京市浦口區(qū)浦口大道1號新城總部大廈A座903室', '025-86223345', 1, '2013-03-25 16:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (11, 'GZ_GYS003', '廣州市白云區(qū)美星五金制品廠', '長期合作伙伴,主營產(chǎn)品:海綿床墊、坐墊、靠墊、海綿枕頭、頭枕等', '梁天', '13562276775', '廣州市白云區(qū)鐘落潭鎮(zhèn)福龍路20號', '020-85542231', 1, '2016-12-21 06:12:17', NULL, NULL); INSERT INTO `smbms_provider` VALUES (12, 'BJ_GYS004', '北京隆盛日化科技', '長期合作伙伴,主營產(chǎn)品:日化環(huán)保清洗劑,家居洗滌專賣、洗滌用品網(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ā)展有限公司', '長期合作伙伴,主營產(chǎn)品:洗衣皂、洗衣粉、洗衣液、洗潔精、消殺類、香皂等', '吳洪轉(zhuǎn)', '13245468787', '山東濟(jì)陽濟(jì)北工業(yè)區(qū)仁和街21號', '0531-53362445', 1, '2015-01-28 10:52:07', NULL, NULL); INSERT INTO `smbms_provider` VALUES (14, 'JS_GYS003', '無錫喜源坤商行', '長期合作伙伴,主營產(chǎn)品:日化品批銷', '周一清', '18567674532', '江蘇無錫盛岸西路', '0510-32274422', 1, '2016-04-23 11:11:11', NULL, NULL); INSERT INTO `smbms_provider` VALUES (15, 'ZJ_GYS002', '樂擺日用品廠', '長期合作伙伴,主營產(chǎn)品:各種中、高檔塑料杯,塑料樂扣水杯(密封杯)、保鮮杯(保鮮盒)、廣告杯、禮品杯', '王世杰', '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)建時間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '修改者', `modifyDate` datetime NULL DEFAULT NULL COMMENT '修改時間', 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)建時間', `modifyBy` bigint NULL DEFAULT NULL COMMENT '更新者(userId)', `modifyDate` datetime NULL DEFAULT NULL COMMENT '更新時間', 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號', 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ū)前門東大街9號', 2, 1, '2014-12-31 19:52:09', NULL, NULL); INSERT INTO `smbms_user` VALUES (5, 'hanlubiao', '韓路彪', '0000000', 2, '1984-06-05', '18567542321', '北京市朝陽區(qū)北辰中心12號', 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號', 3, 1, '2013-02-11 10:51:17', NULL, NULL); INSERT INTO `smbms_user` VALUES (7, 'wangyang', '王洋', '0000000', 2, '1982-12-31', '13444561124', '北京市海淀區(qū)西二旗輝煌國際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號樓', 3, 1, '2016-04-21 13:54:07', NULL, NULL); INSERT INTO `smbms_user` VALUES (10, 'sunlei', '孫磊', '0000000', 2, '1981-01-04', '13387676765', '北京市朝陽區(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', '北京市朝陽區(qū)建國門南大街10號', 3, 1, '2016-11-09 16:51:17', NULL, NULL); INSERT INTO `smbms_user` VALUES (12, 'zhangchen', '張晨', '0000000', 1, '1986-03-28', '18098765434', '朝陽區(qū)管莊路口北柏林愛樂三期13號樓', 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號樓', 3, 1, '2016-07-11 08:02:47', NULL, NULL); INSERT INTO `smbms_user` VALUES (14, 'yangguo', '楊過', '0000000', 2, '1980-01-01', '13388886623', '北京市朝陽區(qū)北苑家園茉莉園20號樓', 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號樓', 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;

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

添加如下代碼
# log-bin需要在D盤下創(chuàng)建文件夾mysql8.0log用于存儲日志文件信息 log-bin=D:\mysql8.0log\mysql-bin # binlog-do-db 為要主從的數(shù)據(jù)庫名 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ù)庫的數(shù)據(jù)的存放目錄 datadir=D:\MySQLReadWriteSeparation\mysql-8.0.39-winx64-3380\mysqldata # 開啟慢日志 slow_query_log=1 long_query_time=2 # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫系統(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)建新表時將使用的默認(rèn)存儲引擎 default-storage-engine=INNODB # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=caching_sha2_password # log-bin需要在D盤下創(chuàng)建文件夾mysql8.0log用于存儲日志文件信息 log-bin=D:\mysql8.0log\mysql-bin # binlog-do-db 為要主從的數(shù)據(jù)庫名 binlog-do-db=smbms binlog_format = ROW [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時默認(rèn)使用的端口 port=3380 # 設(shè)置默認(rèn)字符集為UTF8MB4 default-character-set=utf8mb4
重啟服務(wù)
打開計(jì)算機(jī)管理重啟服務(wù)

在mysql8.0log文件中會有如下的文件。

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

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

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

依次執(zhí)行下面命令,注意要一條指令一條指令的跑。
stop slave; # 127.0.0.1為主數(shù)據(jù)庫IP # master_port: 主數(shù)據(jù)庫端口 # master_user: 主數(shù)據(jù)庫用戶 # master_password: 主數(shù)據(jù)庫密碼 # master_log_file: 主數(shù)據(jù)庫 執(zhí)行show master status;查看的 File 字段值 # master_log_pos: 主數(shù)據(jù)庫 執(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í)行最后一條語句結(jié)果如下:只要出現(xiàn)Slave_IO_Running和Slave_SQL_Running

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

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

總結(jié)
到此這篇關(guān)于MySQL的讀寫分離配置的文章就介紹到這了,更多相關(guān)MySQL讀寫分離配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中ON DUPLICATE KEY UPDATE語句的使用
INSERT INTO ... ON DUPLICATE KEY UPDATE?是一個強(qiáng)大的SQL語句,它結(jié)合了插入新記錄和更新已存在記錄的功能于一體,本文就來介紹一下MySQL中ON DUPLICATE KEY UPDATE語句的使用,感興趣的可以了解一下2024-08-08
徹底搞懂?dāng)?shù)據(jù)庫操作truncate delete drop關(guān)鍵詞的區(qū)別
這篇文章主要為大家介紹了數(shù)據(jù)庫操作truncate delete drop關(guān)鍵詞的區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
MySQL DQL從基礎(chǔ)查詢到實(shí)戰(zhàn)優(yōu)化全指南
本文系統(tǒng)講解MySQL DQL核心概念與規(guī)范,涵蓋基礎(chǔ)查詢、條件篩選、聚合分析、分組排序及分頁優(yōu)化,強(qiáng)調(diào)避免SELECT*、合理使用索引、執(zhí)行順序理解,助你寫出高效可讀的查詢語句,感興趣的朋友跟隨小編一起看看吧2025-09-09
Sysbench對Mysql進(jìn)行基準(zhǔn)測試過程解析
這篇文章主要介紹了Sysbench對Mysql進(jìn)行基準(zhǔn)測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
windows10下同時安裝兩個mysql服務(wù)的方法步驟
我的電腦已經(jīng)安裝了8.0.18,現(xiàn)在再安裝個8.0.25,本文主要介紹了windows10下同時安裝兩個mysql服務(wù)的方法步驟,具有一定的參考價值,感興趣的可以了解一下2023-09-09
mysql報(bào)錯Duplicate entry ‘xxx‘ for key&nbs
有時候?qū)Ρ磉M(jìn)行操作,例如加唯一鍵,或者插入數(shù)據(jù),會報(bào)錯,本文就來介紹一下mysql報(bào)錯Duplicate entry ‘xxx‘ for key ‘字段名‘的解決方法,感興趣的可以了解一下2023-10-10


