生产环境搭建MySQL复制的教程

MySQL之复制环境搭建与线程管理实战指南 大家好!MySQL复制是构建高可用、可扩展数据库架构的核心技术。写作本文的初衷,是希望与各位开发者、运维人员分享复制环境的搭建流程、线程管理技巧及常见问题解决方案,通过通俗易懂的解析和实战案例,帮助大家快速掌握复制功能的落地细节。文中将结合配置步骤、线程原理和代码实例,助力读者构建稳定可靠的复制系统。欢迎随时交流探讨! 阅读详情


【导读】

网络上有很多关于MySQL复制搭建的步骤和范例,以及手册上有一章完整的篇幅,讲述MySQL复制的原理、搭建步骤、优化等,但依然存在很多刚开始学习MySQL知识或者刚进入DBA行业的朋友咨询,知道搭建步骤,但还是在咨询生产环境的搭建或搭建过程碰到的问题,为此给大家简单讲述下复制的原理,并且讲述一下生产环境该如何搭建复制架构。

n  复制的基本原理及基础知识

使用3个线程来完成主从数据库服务器之间的数据复制功能,其中1 个I/O线程跑在主服务器上,另两个线程跑在从服务器上。当从服务器上执行START SLAVE时,从服务器会向主服务器申请创建一个数据库连接,连接到主数据库服务器,并用它发送记录在其二进制日志中的语句内容,此线程可以在主服务器上查看到,在主服务器上执行命令:SHOW PROCESSLIST,其输出信息中Command列值内容为:Binlog Dump,其连接信息中的HOST列值包含从服务器的IP地址。

从服务器上,执行SHOW PROCESSLIST;可以看到2个线程,其中一个为I/O线程,一个为SQL线程,其功能:

l  I/O线程负责读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从数据库服务器数据目录中的本地文件中,也即中继日志;

l  SQL线程,是从数据库服务器创建,用于读取解析中继日志并执行日志中的SQL语句;

MySQL的主从数据复制结构,如图1-1:

n  生产环境复制搭建范例

假设需要搭建复制的二台数据库服务器IP地址分别为:10.10.1.210、10.10.1.211,mysqld服务都跑在端口号:3306上。若是只有一台在线的场景,即假定10.10.1.210为在线服务器,10.10.1.211为新增加的服务器;若是要进行撤服务器的场景,那么拆除的服务器假定为10.10.1.211。

u  非在线环境搭建数据库的复制结构步骤(双主复制)

l  10.10.1.210/211:安装mysql软件包,用rpm包做示范:rpm –ivh /home/software/MySQL*

l  10.10.1.210/211上,执行SQL语句:

DELETE FROM mysql.user where user=’’ OR host=’’;FLUSH PRIVILEGES;

GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’ IDENTIFIED ‘repl#3306’;

备注:

帐号名称和密码可按自行习惯或规范设置,建议帐号名称好区分用处,以及独立

专用,权限要限制,不多赋予任何权限,以免混淆或执行错误命令等而造成危害

l  10.10.1.210/211 停掉mysqld服务:mysqladmin –uroot shutdown

l  10.10.1.210上,必须修改的my.cnf参数:server-id和开启二进制功能,推荐与复制有关的参数设置:

server-id =  3306

port = 3306

log-bin = /data/mysqldata/binlog/mysql-bin  (备注:路径替换为你所需要的)

log-bin-index = /data/mysqldata/binlog/mysql-bin.index

 

report_host = <本机IP地址>

report_port = 3306

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

binlog-format = mixed

transaction_isolation = REPEATABLE-READ

l  10.10.1.211上,必须修改的my.cnf参数:server-id,若是想做双主复制,也得开启二进制功能,推荐与复制有关的参数配置设置:

server-id =  33060

port = 3306

log-bin = /data/mysqldata/binlog/mysql-bin  (备注:路径替换为你所需要的)

log-bin-index = /data/mysqldata/binlog/mysql-bin.index

 

report_host = <本机IP地址>

report_port = 3306

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

binlog-format = mixed

transaction_isolation = REPEATABLE-READ

log-slave-updates

l  10.10.1.210/211 启动mysqld服务:mysqld_safe &

l  10.10.1.210/211上执行SQL:SHOW MASTER STATUS;以获得各自上的二进制日志文件名称及日志位置

l  10.10.1.210->10.10.1.211的复制,则在10.10.1.211上执行SQL语句:

CHANGE MASTER TO master_host=’10.10.1.210′,

master_user=’repl’,master_password=’repl#3306′,

master_log_file=’mysql-bin.000002′,

master_log_pos=106,master_port=3306;

START SLAVE;SELECT SLEEP(1);SHOW SLAVE STATUS\G

备注:

若是SQL线程和I/O线程都显示为OK状态,则复制搭建成功;若是有错误信息,则看SQL语句的输出信息,以及查看错误日志文件内容(注释:error.log)

l  10.10.1.211->10.10.1.210的复制,则在10.10.1.210上执行SQL语句:

CHANGE MASTER TO master_host=’10.10.1.211′,

master_user=’repl’,master_password=’repl#3306′,

master_log_file=’mysql-bin.000002′,

master_log_pos=106,master_port=3306;

START SLAVE;SELECT SLEEP(1);SHOW SLAVE STATUS\G

对于如何阅读输出的信息,同上

 

u  给在线数据库服务器搭建复制步骤

前面假设了服务器IP:10.10.1.210为在线跑的数据库服务器,可能有不少公司为提高性能或疏忽等原因,二进制日志登记功能有可能没有打开。

l  10.10.1.210:检查是否开启二进制日志功能,若没有开启,则修改my.cnf文件,添加:

log-bin = /data/mysqldata/binlog/mysql-bin

log-bin-index = /data/mysqldata/binlog/mysql-bin.index

其他参数建议配置为:

server-id =  3306

port = 3306

report_host = <本机IP地址>

report_port = 3306

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

binlog-format = mixed

transaction_isolation = REPEATABLE-READ

然后申请停机维护时间,肯定要是用户访问量最小,且不影响内部其他业务运转的时间点,一般都是凌晨几点进行,把mysqld服务器重新启动,命令:

mysqladmin –uroot –p*** shutdown;mysqld_safe &

l  10.10.1.210:对于无服务上所有数据库完整备份的数据库服务器,则编写一个数据库备份的脚本程序,比如shell语言,然后crontab调用任务了,时间肯定要设置在服务器压力最小的时刻点;

l  10.10.1.210:脚本程序需要注意的参数:mysqldump工具备份的话,则建议加上参数:

–single-transaction  –master-data=1 default-character-set=utf8(备注:修改为自己需要的字符集)

l  10.10.1.210:脚本写完之后,修改下备份的数据库名称指定参数为:-B test,测试下备份脚本,是否能执行成功,测试完毕再修改回来

l  10.10.1.211:安装mysql参考上述步骤,设置的my.cnf参数推荐:

server-id =  33060

port = 3306

log-bin = /data/mysqldata/binlog/mysql-bin

log-bin-index = /data/mysqldata/binlog/mysql-bin.index

report_host = <本机IP地址>

report_port = 3306

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

binlog-format = mixed

transaction_isolation = REPEATABLE-READ

log-slave-updates

l  10.10.1.211:重新启动mysqld服务,执行:

mysqladmin –uroot shutdown;mysqld_safe &

l  10.10.1.210/211上:增加复制帐号,执行的SQL语句:

GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’ IDENTIFIED BY ‘repl#3306’;

l  10.10.1.211上进行10.10.1.211的数据库备份文件恢复:

mysql –uroot  –default-character-set=utf8 < ***.bak

l  10.10.1.211的备份恢复完成之后,执行:more ***.bak,可以看到备份文件有一段类似的语句:

CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000019′, MASTER_LOG_POS=383196279;

可以把此语句复制出来后,修改为:

CHANGE MASTER TO MASTER_HOST=’10.10.1.210′,

MASTER_USER=’repl’,MASTER_PASSWORD=’repl#3306′,

MASTER_LOG_FILE=’mysql-bin.000019′,

MASTER_LOG_POS=383196279,MASTER_PORT=3306;

l  搭建10.10.1.210-> 10.10.1.211的复制,在10.10.1.211上执行:

SHOW MASTER STATUS; — 记录其日志文件的名称和位置信息

CHANGE MASTER TO MASTER_HOST=’10.10.1.210′,

MASTER_USER=’repl’,MASTER_PASSWORD=’repl#3306′,

MASTER_LOG_FILE=’mysql-bin.000019′,

MASTER_LOG_POS=383196279,MASTER_PORT=3306;

START SLAVE;SELECT SLEEP(1);SHOW SLAVE STATUS\G

备注:

判断复制是否搭建成功就看I/O和SQL线程是否显示为OK状态,另外必须注意的事项,一般此类复制必须放到服务器压力最小的时候搭建,因为会从主服务器上发送大量的二进制日志信息到从服务器,从而会加重主服务器的I/O、网卡和CPU负载,从而影响用户的体验。

l  搭建10.10.1.211->10.10.1.210复制,在10.10.1.210上执行:

CHANGE MASTER TO master_host=’10.10.1.211′,

master_user=’repl’,master_password=’repl#3306′,

master_log_file=’10.10.1.211上查看到的二进制日志文件名称’,

master_log_pos=10.10.1.211上查看到的二进制日志的位置,master_port=3306;

START SLAVE;SELECT SLEEP(1);SHOW SLAVE STATUS\G

备注:

10.10.1.211上无需要执行的日志信息发送到10.10.1.210上,故任何时间点搭建都可以,只要记住了二进制日志文件名称和位置信息.

 

u  对在线数据库服务器撤销复制功能步骤

假设双主复制模式的数据库服务器架构:10.10.1.210<->10.10.1.211,且两台服务器都有不同应用程序连接,进行读写操作,以分散读的压力,保留服务器IP:10.10.1.210。

l  10.10.1.211:把所有连接到10.10.1.211的程序数据库联接信息IP地址修改为:

10.10.1.210,然后对此部分的应用,分批重新启动程序服务,确保其连接更改完毕

l  10.10.1.211:检查是否已经没有数据库联接了,若没有,在检查下是否打开参数:log-slave-updates,若没有直接执行SQL语句:SHOW MASTER STATUS;间隔15分钟再执行,发现二进制日志位置没有变化,则基本说明没有任何程序连接到此;若是打开log-slave-updates参数,则建议先执行:STOP SLAVE;再用上述办法观察;

l  10.10.1.211上:执行停止复制的SQL语句:STOP SLAVE;并且关掉mysqld服务,以防止漏网之鱼的程序连接存在,不报错而无法发现:mysqladmin –uroot –p***  shutdown

l  10.10.1.210上:执行停止复制的SQL语句:STOP SLAVE;RESET SLAVE;

 

u  总结

本想再讲一下对于MySQL服务器迁移的事情,告诉大家生产环境一般是如何做的,比如双向复制架构:10.10.1.210<->10.10.1.211,要进行物理服务器的替换或搬迁,那么我们一般会通过复制的方式,把数据复制到新服务器上,然后再进行停机维护,切换数据库的方式完成,相信大家阅读了上面的案例,可以整合借鉴的。

给大家讲述了2种生产环境下,搭建复制的做法,以及拆除数据库复制的做法,其实技术含量都是非常有限的,而且手册上也能学习到基本操作,但请大家思考这些步骤的意义,是否是为了:减少停机维护的时间,减少对用户体验的影响,减少犯错而导致数据丢失或错乱等。


u  最后

上传一个MySQL官方手册中提供的,也是很多互联网行业企业中,解决读负载高的业务场景:读写分离的架构图,供大家参考的,图1-2:

再上传一个我们团队内部实习生绘制的MySQL复制数据流转图,供大家加深记忆和理解,图1-3:

搭建基于 Docker 的 MySQL 主从复制生产环境 本次配置是在AlmaLinux下,mysql 采用 5.7.13,Docker 版本为3.3.1。主要目的是要实现在一台主机上两个Mysql数据库的主从复制,进而为SpringBoot读写分离作开发前准备。根据《Docker最佳实践》的指导要求,数据库文件等不能放在容器里面,构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,容器消亡时,容器存储层也随之消亡。容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。 阅读详情

相关推荐

搭建Mysql主从复制

MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。基于语句的复制(STATEMENT):在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率比较高。基于行的复制(ROW):不记录 SQL 语句上下文信息,仅保存哪条记录被修改。混合类型的复制(MIXED):默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。

sloveb123的博客 1563

mysql生产环境实现主从复制_生产环境 MySQL主从复制(同步)

服务器信息1、主服务器信息[emailprotected]:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 14.04.4 LTSRelease: 14.04Codename: trustymysql Ver 14.14 Distrib 5.5.50,...

weixin_34079825的博客 221

SPSS&Mplus—共同方法偏差(Common Method Bias)控制与检验

共同方法偏差(Common Method Bias)的控制方法:程序控制(Procedural)和统计控制(Statistical)。

m0_54401011的博客 1万+

MySQL安装与环境搭建——超详细教程

本章详细写了mysql的安装,环境的搭建以及安装时常见的问题和解决办法。

m0_64784442的博客 1万+

基于555定时器的D类功放设计:从PWM原理到无反馈电路实践

D类功放(数字功放)是一种高效率的音频放大技术,其核心原理是脉冲宽度调制(PWM)。它将输入的模拟音频信号转换为一系列高速开关的脉冲,通过控制功率开关管(如MOSFET)的通断,再经低通滤波器还原放大后的音频。相比传统AB类功放,其转换效率通常超过90%,显著降低了热能损耗。这项技术在追求高能效和小型化的现代音频设备中价值凸显,广泛应用于有源音箱、汽车音响和便携式设备。本文聚焦于一种独特的实现方案:以经典的555定时器芯片为核心,构建一个无整体负反馈的D类功放。通过剖析其PWM调制器、FET电压-电流转换级

weixin_30162121的博客 222

【AI知识点】启发式算法(Heuristic Algorithms)

启发式算法(Heuristic Algorithms) 是一种基于经验、直觉和局部优化的求解问题的算法,尤其适用于解决计算复杂度高、规模庞大的问题。它们通过简化问题、局部搜索和快速近似,提供了一种在短时间内获得“足够好”解的途径。虽然启发式算法无法保证全局最优解,但它们在实际应用中广泛使用,特别是在优化问题、任务调度和机器学习等领域。

AI完全体 3031

记:生产环境 Mysql 数据库数据迁移

以下命令场景是我将历史数据写入到新数据库中的临时表中,而实时任务写入的mysql表已经更改为正式表,由于此表数据量较大,使用load data命令将临时表的历史数据批量同步至正式表,虽然两张表都在新数据库,可以使用insert select 命令导入,但由于数据量较大,执行效率低,容易超时失败,所以使用load命令更高效。数据类型包括结构化数据、非结构化数据,最后形成的ADS层指标数据写入mysql指标数据库,由于业务原因需要将mysql进行迁移,以下涉及的迁移是指涉及指标数据库mysql的迁移。

Dark_Fairy的博客 2346

高频功率放大器的设计实现

摘 要 随着无线通信技术的高速发展,市场对射频电路的需求越来越大,同时对射频电路的性能要求也越来越高。高频功率放大器是位于无线发射级末端的重要部件,为了弥补信号在无线传输过程中的衰耗,要求发射机具有较大功率的输出,通信距离越远,要求的输出功率越大。在高频范围内,为了获得足够大的高频输出功率,就要采用高频功率放大器。 本次课程设计的高频功率放大器的技术指标包括输出功率、效率、功率增益、由于高频频功率放大器的输出功率比较大,耗能比较多,所以工作效率就显得比较重要。本课程设计的高频功率放大器电路由两极功率放大器

qq_43543515的博客 3万+

MySQL--环境搭建--02--生产--mysql升级到8.0.22

一、准备(hd用户) 1.1、上传8.0.22版本的rmp文件 切换用户 su hd 进入目录 cd ~ 上传文件 mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar 1.2、备份数据库配置文件,为了升级后可以使用老的配置 cd /etc cp my.cnf my.cnf.back 二、查询信息 2.1、查看版本 mysql -V 2.2、查看要备份的数据库 登陆mysql mysql -h127.0.0.1 -u root -p 数据库密码 xxx

zhou920786312的博客 214

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5099

【博文汇总】I2C总线学习

将这一周学习I2C总线的文章汇总一下。 基础知识学习 触发器的建立时间和保持时间 如何学习总线技术 TTL电平和CMOS电平 深入理解 关于I2C和SPI总线协议 I2C总线深入浅出 I2C总线信号时序总结 对I2C总线协议的一些理解 对I2C总线的时钟同步和总线仲裁的深入理解 I2C总线学习终结,开始SPI总线的学习 深入理解IIC总线时序

ce123的技术博客 6215

生产环境搭建MySQL复制的教程(转)

【导读】 网络上有很多关于MySQL复制搭建的步骤和范例,以及手册上有一章完整的篇幅,讲述MySQL复制的原理、搭建步骤、优化等,但依然存在很多刚开始学习MySQL知识或者刚进入DBA行业的朋友咨询,知道搭建步骤,但还是在咨询生产环境的搭建或搭建过程碰到的问题,为此给大家简单讲述下复制的原理,并且讲述一下生产环境该如何搭建复制架构。 n复制的基本原理及基础知识 使用3个线程来完...

127

电机驱动器MP6540H应用设计

/ ... 其他初始化函数(SystemClock_Config, MX_GPIO_Init, MX_TIM1_Init, MX_TIM2_Init)需要你根据STM32CubeMX生成或手动编写。// 假设霍尔传感器引脚是 GPIO_PIN_8, GPIO_PIN_9, GPIO_PIN_10。// 低侧U相GPIO引脚。

zhusl6688的博客 660

Nacos-搭建生产可用的Nacos集群

Nacos-搭建生产可用的Nacos集群 本节详细探讨如何搭建一个生产可用的Nacos集群。讨论的内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。 Nacos默认数据存储在内嵌数据库Derby中,不适合用于生产环境,官方推荐的最佳实践是使用带有主从的高可用数据库集群。 生产环境需使用MySQL作为后端存储,因此需要搭建MySQL。生产中,MySQL建议至少主备模式,高可用MySQL更佳。 一、部署架构图 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里使用n

一行真人 935

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mysql单机搭建及主从复制环境搭建

目录 单机环境搭建 环境准备 环境搭建 1.如果不想用我的版本可以在官网上去找其他版本 :MySQL :: Download MySQL Community Server 2.下载并解压文件 主从复制搭建 1.先在原来单机的基础上把现有的mysql先停掉 2.然后修改删除 /data/mysql/data 文件夹下的所有文件,再创建两个文件夹分别放两个实例的数据 3.将my.cnf复制到conf下分别修改 4.初始化3306、3307的数据库实例 5.分别启动两个实例 6.登..

邋遢道的博客 2094

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【MySql】 搭建主从复制

主从复制是指将主库的数据变更同步到从库,从而保证主库和从库数据一致,可用于数据备份、失败迁移、读写分离、降低单库读写压力等场景。对于面向大企业的B端产品而言,主从复制技术尤为重要。

精益求精 2036

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MySQL 主从复制环境搭建及物理备份恢复完整教程(基于 Percona XtraBackup)

这是 MySQL 主库在你进行备份时对应的二进制日志文件名和位置,设置主从复制时必须用到,保证。会尝试一次性打开很多文件进行扫描和备份。如果系统对某个进程允许打开的文件数太小,就会报错。如果不修改权限,可能出现 “permission denied” 启动失败。,从库开始从主库读取 binlog 并同步数据。用户身份运行,必须有权限访问和修改数据文件。如果成功,说明就是这个问题。会删除目标目录中不在源目录的文件,权限(视你的具体使用而定)。成功还原,并且权限设置正确。文件(独立表空间),而。

weixin_56804576的博客 1826

mysql主从复制环境搭建

http://blog.163.com/zhaoxin_hope/blog/static/17243722120126114039748/ 从网上转载的一篇文章,步骤很详细,实验过,可以直接拿来用,我是window下低版本的mysql做主服务器,linux下高版本的mysql做从服务器做主从复制结构的,主从复制之间要求主从mysql版本一致或从的版本高与主的版本均可成功搭建主从复制环境。至于主版

yangyan19870319的专栏 1万+

Docker下搭建MySQL主从复制

Docker下安装MySQL主从复制

名不显时心不朽,再挑灯火看文章 2203

MySQL主从复制环境搭建

MySQL主从复制主要包含三个线程(Log Dump Thread、IO Thread、SQL Thread)和两个日志(Bin log、Relay log),Master的数据库变更会写到binlog中,binlog内容会通过Log Dump Thread线程发送给从节点,从节点的IO Thread线程读取到内容后会将内容写到Relay Log中,然后通过SQL Thread线程读取Relay Log并以SQL形式在Slave数据库执行。# master_connect_retry:重试时间。

Yanping-1003 1640
上一篇: MySQL InnoDB之事务与锁详解
下一篇: windows下VIM编辑器中文乱码修正方法
windex2000
博客等级 码龄17年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值