十大网站排行榜/百度搜索首页
MySQL主从复制
一、主从复制概念
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行赋值,从库同时也可以作为其他从服务器的主库,实现链式复制。
一般主服务器我们叫Master, 从服务器叫Slave
二、主从复制优点
- 主库出现问题,可以快速切换到从库提供服务。
- 实现读写分离,降低主库的访问压力。
- 可以在从库备份,以避免备份期间影响主库服务。
三、主从复制原理
- Master 主库在事务提交时,会把数据变更记录在二进制日志文件binlog中。
- 从库读取主库的二进制文件binlog,写入到从库的中继日志relay.log
- slave重做中继日志中的事件,将改变从库自己的数据
四、主从复制搭建
4.1 MySQL服务器准备
首先准备两台已经安装了MySQL的主机,这里我分为准备了两台10.0.3.93(Master) 和 10.0.3.94(Slave)
4.2 主服务器配置
1、在MySQL的配置文件中,增加如下两行的配置,第三和第四的配置,可以根据需要配置
#MySQL服务ID,保证整个集群中唯一,默认是1
server-id=1
#是否只读,1代表只读,0代表读写
read-only=0
#忽略的数据,指不需要同步的数据库,和下面的一条配置默认如果不配置的话,即复制所有数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
2、配置好了之后,要重启MySQL服务。
3、登录mysql,创建远程连接的账号,并授予主从复制权限,这个账号是用来在从服务器上登录主服务用的。
# 创建一个mysql用户为houlei,并设置密码为:Se7eN521,该用户可以在任意主机连接该MySQL服务
mysql> create user 'houlei'@'%' identified with mysql_native_password by 'Se7eN521';
Query OK, 0 rows affected (0.03 sec)
# 为'houlei'@'%' 用户分配主从复制权限
mysql> grant replication slave on *.* to 'houlei'@'%';
Query OK, 0 rows affected (0.01 sec)
4、通过指令,查看二进制日志坐标,这里的数据也是需要在从服务上配置需要的
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000005 | 156 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
4.3 从服务器配置
1、从服务器上在MySQL的配置文件中增加下面的配置
#MySQL服务ID,保证整个集群中唯一
server-id=2
#是否只读 1代表只读 0代表读写
read-only=1
2、配置好了之后,要重启MySQL服务。
3、登录mysql,设置主库配置
mysql-8.0.23以后的版本,执行以下SQL
change replication source to host='xxx.xxx.xxx.xxx', source_user='xxx',soucre_password='xxx',source_log_file='xxx',source_log_pos=xxx;
mysql-8.0.23以前的版本,执行以下SQL,但是mysql-8.0.23以后的版本也是兼容mysql-8.0.23以前的这个SQL的,所以怕麻烦去查版本的,可以直接使用这个mysql-8.0.23以前的
change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos='xxx'
参数解释
- source_host/master_host: 主库IP地址。
- source_user/master_user:连接主库的用户名。
- source_password/master_password:连接主库的密码。
- source_log_file/master_log_file:binlog日志文件名。
- source_log_pos/master_log_pos:binlog日志文件位置,这个参数是不用加引号或单引号的。
示例:注意该语句一定要在从库上执行
change master to master_host='10.0.3.93',master_user='houlei',master_password='Se7eN521',master_log_file='binlog.000005',master_log_pos=156
4、启动主从复制
mysql-8.0.23之后:start replica;
mysql-8.0.23之前:start slave;
5、查看主从同步状态
mysql-8.0.23之后:show replica status\G;
mysql-8.0.23之前:show slave status\G;
说明1:这里主要看Slave_IO_Running和Slave_SQL_Running这两个是否为YES,全部为YES说明配置成功
五、主从复制测试
说明1:主从原始的都是只有四张系统表
说明2:主服务器上创建了一个数据库db01,在从服务器上查询,就马上显示了刚创建的db01
说明3:在主服务器上创建了一张表,马上就主从复制到了从服务器上
说明4:主表中插入数据,也会马上复制到从表中,同样的修改和删除数据也会同步复制过去。
MySQL Mycat配置
一、schema.xml
1.1 简介
schema.xml作为Mycat中最重要的配置文件之一,涵盖了Mycat的逻辑库、逻辑表、分片规则、分片节点即数据源的配置。主要包括一下三组标签
- schema标签
- datanode标签
- datahost标签
1.2 schema标签
用于定于Mycat实例中的逻辑库,一个Mycat实例中,可以有多个数据库,可以通过schema标签来划分不同的逻辑库。Mycat中的逻辑库的概念,等同于MySQL中的database概念没需要操作某个逻辑库下的表时,就需要切换逻辑库,同MySQL一样,使用use xxxx语句。
核心属性:
name: 自定自定义的逻辑库苦命
checkSQLschema: 在SQL语句操作时指定了数据库名称,执行时是否自动去除,true:自动去除,false不自动去除,即如果有true时,我们可以不进入数据库查询.
sqlMaxLimit: 如果未指定limit进行查询,列表查询模式默认查询的条数。
checkSQLschema参数演示:
说明1:当checkSQLschema为true时,我们可以不进入数据库查询,即使用DB01.TB_ORDER的方式,但是如果checkSQLschema为false的时候,就不能这样写了,就必须要要先usr DB01;今日数据库里面在查找,所以这里大家就直接给true就行了。
1.3 schema标签中的table标签
table标签定义Mycat中逻辑库schema下的逻辑表,所有需要查分的表都需要在table标签中定义。
核心属性:
name:定义逻辑表表名,在该逻辑库下唯一
DataNode:定义逻辑表所属的dataNode,该属性需要与dataNode标签中的name对应,多个dataNode用逗号隔开
rule: 分片规则的名称,分片规则名字是在rule.xml中定义的
primaryKey: 逻辑表对应的真是表的主键
type: 逻辑表的类型,目前逻辑表只有全局表和普通表,如果未配置,默认是普通表,全局表配置为global
1.4 dataNode标签
dataNode标签中定义了Mycat中的数据节点,也就是我们通常说的数据分片,一个dataNode标签就是一个独立的数据分片
核心属性:
name:定义了数据节点名称
dataHost:数据库实例主机名称,引用自dataHost标签中name属性
database:定义分片所属数据库
1.5 dataHost标签
该标签在Mycat逻辑库中作为底层标签,直接定义了具体的数据库实例、读写分离,心跳语句。
核心属性:
name:唯一标识符,供上层标签使用
maxCon/minCon:最大连接数/最小连接数
balance:负载均衡策略,取值0,1,2,3 ,读写分离的时候,在详细说明这四个取值的意义。
writeType:写操作分发方式(0:写操作转发到第一个writeHost,第一个挂了,切换到第二个;1:写操作随机发配到配置的writeHost)
dbDriver:数据库驱动,支持native和jdbc,native主要支持MySQL5+,jdbc主要支持MySQL8+
1.6 schema.xml逻辑库映射
逻辑库的名字和mysql数据库中的名字可以不一致的,例如我们这里配置的逻辑库的名字是大写的DB01,而MySQL中的数据库名则是小写的db01,这取决于逻辑库和MySQL真实数据库的映射关系。
schema.xml整体配置流程即关系隐射示意
二、rule.xml
rule.xml中定义了所有拆分表的规则,在使用过程中可以灵活的使用分片算法,或者对同一个分片算法使用不同的参数,它让分片过程可配置化,主要包含两类标签:tableRule,Function
而在schema.xml中配置的分片规则就是在这里定义的
说明1:在tableRule标签里面主要有columns和algorithm两个标签。
说明2:columns标签主要是分表的依据
说明3:algorithm标签主要是,分库分表的算法引用,这里algorithm里面的值就是Function标签的实现。
例如:auto-sharding-long 分表规则的,依据是rang-long这个算法。
而 rang-long这个算法就在function标签中有定义,而function标签中的class就是对应这个算法的实现类。
说明4:至于这里面的分库分表的规则具体的使用,我们会在后面分库分表实战章节,用到的时候在详细说。
三、server.xml
server.xml配置文件包含了Mycat的系统配置,主要有两个重要的标签:system, user.
3.1 system标签
重要属性说明:
charset: 取值utf8: 设置Mycat的字符集,字符集需要与MySQL的字符集保持一致
nonePasswordLogin: 取值 [0, 1], 0:需要登录密码登录,1:不需要登录密码登录,默认为0,设置为1,则需要指定默认账户
useHandshakeV10: 取值 [0,1],使用该选项主要是为了能够兼容高低版本的jdbc驱动,是否采用handshakeV10来与client进行通讯,1:是,0:否
useSqlStat: 取值[0,1],开启SQL实时统计 1:开启,0:关闭,开启之后Mycat会自动统计SQL语句的执行情况:mysql -h xxx.xxx.xxx.xxx -P 9066 -u root -p之后就可以查看,使用show @@sql; show @@sql.low; show @@sql.sum等,分别是查看Myact执行的sql, 执行效率比较低的SQL,SQL的整体执行情况,读写比例等等。
useGlobelTableCheak: 取值[0,1],是否开启全局表一致性检查,1:开启,0关闭
sqlExecuteTimeout: 取值1000等整数:SQL执行的超时时间单位为秒
sequnceHandleType:取值[0,1,2],用来指定Mycat全局序列类型,0:本地文件,1:数据库方式,2:为时间戳方式,默认使用本地文件方式,文件方式主要用于测试
sequnceHandlePattern: 正则表达式:必须带有MYCATSEQ或者mycatseq进入序列匹配流程
subqueryRelationshipCheck: 取值[true,false],子查询存在关联查询的情况下,检查关联字段中是否有分片字段,默认false
useCompression: 取值[0,1],开启mysql压缩协议,0:关闭,1:开始
fakeMySQLVersion: 5.5,5.6,8.0.27等,设置模拟MySQL版本号
defaultSqlParser: 由于Mycat的最初版本使用了FoundationDB的SQL解析器,在Mycat1.3后增加了Druid解析器,所以要设置defaultSqlParser属性来指定默认的解析器,解析器有两个:druidparser和fdbparser,在Mycat1.4之后默认是fruidparser,fdbparser已经废弃
processors: 取值[1,2....] 指定系统可用的线程数量,默认值为CPU核心 乘以 每个核心运行的线程数,processors会影响processorBufferPool,processorBufferLocalPercent,processorExecutor属性,所以在性能调优时可以适当的修改processors的值
processorBufferChunk: 指定每次分配Socker Direct Buffer默认值为4096字节,也会影响BufferPool长度,如果一次性获取字节过多而导致buffer不都用,则会出现警告,可以调大该值
processorExecutor: 指定NIOProcessor上共享businessExecutor固定线程池的大小,Mycat把异步任务交给businessExecutor线程池,在新版本的Mycat中这个连接池使用频率不高,可以适当的把该值调小
packetHeaderSize: 指定MySQL协议中的报文头长度,默认4个字节。
maxPacketSize: 指定MySQL协议可以携带的数据最大大小,默认值为16M
idleTimeout: 取值30等,指定连接的空闲时间的超时长度,如果超时将关闭资源并回收,默认30分钟
txlsolation:取值[1,2,3,4], 初始化前端连接的事务隔离级别,默认为REPEATED_READ,对应数字3,READ_UNCOMMITED=1, READ_COMMITED=2,REPEATED_READ=3,SERIALIZABLE=4
sqlExecuteTimeout: 取值 300 等, 执行SQL的超时时间,如果SQL语句执行超时,将关闭连接,默认300秒
serverPort: 8066 ,定义Mycat的使用端口,默认8066
managerPort: 9066, 定义Mycat的管理端口,默认9066
3.2 user标签
说明1:server.xml中允许有多个user,即同时配置多个用户的权限
说明2:如果一个账户可以访问多个逻辑库,多个逻辑库之间用逗号隔开
说明3:dml中的四个二进制数分别代表增,改,查,删的权限
说明4:如果逻辑表和逻辑库的权限冲突,则就近原则,即优先使用逻辑表的权限
MySQL一主一从读写分离
一、读写分离介绍
读写分离,是把数据库的读和写分开操作,以应对不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力。
二、一主一从原理
MySQL的主从复制是基于二进制(binlog)实现的
说明1:当主服务器的MySQL执行了DML,DDL语句之后,会将数据的变更写入到binlog日志中
说明2:在从服务器上有一个IOThread线程会读取主服务器上的binlog日志,然后写入到自己的中继日志(relay log)中
说明3:在从服务器上还有一个SQLThread线程会从自己的中继日志(relaylog)中读取数据变更,然后反映到自身的数据库上
三、主从复制准备
两台MySQL主机
192.168.3.91:角色master
192.168.3.90:角色slave
具体主从复制的配置如果不会的请参考《MySQL运维2-主从复制》
在从服务器上查看主从配置。
然后在主服务器上创建rw数据库,这时在从库上就会自动创建rw数据库
然后再在主服务器上的rw库中创建一个tb_test用于测试的表
create table tb_test(id int auto_increment primary key, name varchar(20));
四、配置schema.xml
说明1:在业务中如果逻辑库中的所有表都要做读写分离,则可以在schema标签中省略所有的表
说明2:在dataHost数据节点中的配置中注意balance的值只能是“1”或者“3”,balance值的释义
0:不开启读写分离机制,所有读操作都发送当前可用的writeHost上
1:全部的readHost与备用的writeHost都参与select语句的负载均衡(主要针对于双主双从模式)
2:所有的读写操作都随机在writeHost,readHost上分发
3:所有的读请求随机分发到writeHost对应的readHost上执行,writeHost不负担读压力
说明3:一组读写分离的库,其中readHost标签是嵌在writeHost标签中的
说明4:因为要读写分离,所以读写节点上的url是不同的
五、配置server.xml
说明1:为root用户增加rw库的权限
六、读写分离测试
首先重启Mycat
登录Mycat
查看逻辑库和逻辑表
说明1:我们在schema.xml没有配置逻辑表,所以会把rw数据库中的表,全部当做逻辑表,即我们之前创建的tb_test表会查询出来。
插入数据进行测试
insert into tb_test(name) values ("张三");
insert into tb_test(name) values ("李四");
insert into tb_test(name) values ("王五");
这时主库和从库的tb_test表中都有了数据,进行查询测试。
但是这个时候,我们并分不清这个查询出来的数据是主表的还是从表的,这时我们将从表中的“张三”改为“张三1”,因为主从复制,只是单向的从主到从复制,即主表改了,从表会跟着一起改,但是从表改了,主表的数据是不会改的。
再次查询验证
说明1:通过查询的数据得知,我们读取的数据是来自我们配置的从库的数据,即实现了读的数据是从库中的数据。
说明2:因为主从复制是从到主到从单向的复制,所以说明我们写数据一定是写入到主库的,不然从库是不会有数据的。
说明3:所以我们已经实现了简单的数据读写分离。
相关文章:

MySQL一主一从读写分离
MySQL主从复制 一、主从复制概念 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行赋值,从…...

【学术会议】第三届神经计算青年研讨会 学习笔记
第三届神经计算青年研讨会 学习笔记 会议时间:2024-1-6至2024-1-7 会议地点:电子科技大学 会议介绍: 为提升我国神经计算⻘年研究队伍的学术⽔平和国际影响⼒,研讨会主题涵盖:神经系统建模与模拟、脑机接⼝与类脑智能、…...

[C#]使用winform部署PP-MattingV2人像分割onnx模型
【官方框架地址】 https://github.com/PaddlePaddle/PaddleSeg 【算法介绍】 PP-MattingV2是一种先进的图像和视频抠图算法,由百度公司基于PaddlePaddle深度学习框架开发。它旨在提供更精准和高效的图像分割功能,特别是在处理图像中的细微部分…...

回顾2023,立2024flag
文章目录 回顾2023与CSDN相识专栏整理数据回顾 立2024flag 回顾2023 在过去的一年里,前端技术不断演进和创新。新技术、新框架层出不穷,给前端工程师提供了更多选择和挑战。2023年已经成为过去,回首这一年,我们也经历了许多挑战和…...

【PostgreSQL创建索引的锁分析和使用注意】
1.1 创建普通B-tree索引的整体流程 如下是梳理的创建普通B-tree索引的大概流程,可供参考。 1.校验新索引的Catalog元数据|语法解析 ---将创建索引的sql解析成IndexStmt结构|校验B-Tree的handler -----校验内核是否支持该类型的索引,在pg_am中查找&q…...

什么是云安全?如何保护云资源
云计算允许组织通过互联网按需向其客户、合作伙伴或员工提供关键业务应用程序、服务和资源。换句话说,不再需要物理维护资源。每当您通过 Internet 从计算机访问文件或服务时,您都是在访问云。 迁移到云可以帮助企业增强安全性、简化运营并降低成本。企…...

Android可换行的RadioGroup
Android可换行的RadioGroup,有时候需要换行显示的单选列表,当然可以有多种实现方式,比如recycleview或者listview实现,本文采用的是RadioGrouprediobutton方式实现。 一、首先自定义view public class WrapRadioGroup extends RadioGroup {pr…...

【ASP.NET Core 基础知识】--环境设置
一、简介 1.1 .NET Core SDK 概述 .NET Core SDK(Software Development Kit)是Microsoft推出的一个开源跨平台框架,用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一,为开发者提供了在多个操作系统上构建高性能、可…...

docker/华为云cce 部署nacos 2.3.0 集群模式
镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…...

Doris 数据模型—Aggregate 模型
Doris 数据模型—Aggregate 模型 文章目录 Doris 数据模型—Aggregate 模型基本概念Aggregate 模型示例1:导入数据聚合示例2:保留明细数据示例3:导入数据与已有数据聚合Aggregate 模型限制Aggregate 模型使用场景本文主要从逻辑层面,描述 Doris 的数据模型,以帮助用户更好…...

数据库管理-第130期 JSON二元性(20240109)
数据库管理130期 2024-01-09 第130期 JSON二元性(20240109)1 简介2 关系型表和JSON存储的优劣3 Oracle JSON关系型二元性视图总结 第130期 JSON二元性(20240109) 上周,又双叒飞了一趟上海,也是2024年第一飞…...

k8s--动态pvc和pv
前情回顾 存储卷: emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化 hostPath:持久化存储数据 可以和节点上目录做挂载。pod被销毁了数据还在 NFS:一台机器,提供pod内容器所有的挂载点…...

C++:常量
const的最初动机 const的使用方法 使用const的好处是允许指定一种语义上的约束,即某种对象不能被修改,且由编译器具体实施这种约束。 const声明格式:const 类型名 对象名;修饰普通变量,时期不能被随意修改 【注意】1.C中的const…...

java JDBC 连接数据库
必须先插入工具包 DataSource ds JdbcHelper.getDs();System.out.println(ds);JdbcTemplate jdbcTemplatenew JdbcTemplate(ds);System.out.println(jdbcTemplate);//新增String sql1"insert into biao values(null,?,?,?)";int ijdbcTemplate.update(sql1,"…...

图神经网络|5.消息传递的计算方法 6.多层GNN的作用
5.消息传递的计算方法 边的存放方式 注意,在实际的边的实现方式中,并不是以邻接矩阵来进行实现的,这是因为在图的更新中,用邻接矩阵进行更新所占用的时间开销相对大,二是因为领接矩阵占用的空间大(N方&am…...

构建中国人自己的私人GPT
创作不易,请大家多鼓励支持。 在现实生活中,很多人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的私人GPT变得非常重要。 先看效果 一、…...

添加气泡与菜单
目录 1、添加气泡 1.1、文本提示气泡 1.2、带按钮的提示气泡 1.3、自定义气泡 2、菜单 2.1、创建默认样式的菜单 2.2、创建自定义样式的菜单 1、添加气泡 Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于…...

python代码练习:双指针法
题目一:移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…...

C++系列十七:访问控制符
访问权限控制符 一、public访问权限二、private访问权限三、protected访问权限 在C中,访问权限控制符用于限制类成员的访问权限,主要包括public、private和protected三种。这些访问权限控制符用于控制类成员的访问级别,从而保证数据的封装性和…...

postgresql 最简主从配置
实验目的 配置一个最简的主从环境,了解基本的主从配置。 环境参数 操作系统CentOS Linux release 7.9.2009 (Core)数据库版本PostgreSQL 10.23主库端口15431备库端口15432 因为只是做实验,所以主备库放在同一台机器上,仅通过端口区分主备…...

ubuntu 安装 anaconda
ubuntu 安装 anaconda 下载 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh安装 bash Anaconda3-2023.09-0-Linux-x86_64.sh2.1 回车继续 2.2 许可协议 输入 q 退出阅读许可协议 2.3 输入 yes 接受 许可协议 2.4 设置 anaconda 安装位置 如不需…...

DOM 被劫持
文档对象模型(DOM)充当着 HTML 和 JavaScript 之间的接口,搭建起静态内容与动态交互之间的桥梁,对现代 Web 开发而言,DOM 的作用不可或缺。 然而,DOM 也有一个致命的陷阱 —— DOM 劫持。DOM 劫持是指当 H…...

PIG框架学习2——资源服务器的配置详解
一、前言 1、pig资源服务器的配置 Spring Security oauth2相关的依赖是在pigx-common-security模块中引入的,其他模块需要进行token鉴权的,需要在微服务中引入pigx-common-security模块的依赖,从而间接引入相关的Spring security oauth2依赖…...

vue+element ui实现图片上传并拖拽进行图片排序
用到的技术栈: vue2element Uivue-dragging 如何使用: 第一步: 安装 npm install awe-dnd --save第二步: 引入 main.js 文件 // 引入组件 import VueDND from awe-dnd // 添加至全局 Vue.use(VueDND)具体项目代码 <el-form-item label"封面…...

国产服务器 BIOS下组建RADI不同RAID卡-超详细
国产服务器 长城 组建Raid的方法 说明 大多数国产服务器通用型服务器进入BIOS的都是按DEL键。 9361RAID卡组建方法 在服务器启动过程中,按下DEL键进入BIOS界面。 进入设备管理器,选择AVAGO MegaRAID页签。 3. 进入RAID卡设备,选择Main Me…...

UE4 4.21-4.27使用编辑器蓝图EditorBlueprint方法
在UE4 4.21中,编辑器蓝图(Editor Blueprint)是一个强大的工具,允许开发者扩展和自定义Unreal编辑器的功能。通过编辑器蓝图,我们可以创建自定义的工具和功能,以优化开发流程。 本教程将指导您如何在UE4 4.…...

105、Zero-1-to-3: Zero-shot One Image to 3D Object
简介 官网 使用合成数据集来学习相对摄像机视点的控制,这允许在指定的摄像机变换下生成相同对象的新图像,用于从单个图像进行三维重建的任务。 实现流程 输入图像 x ∈ R H W 3 x \in \R^{H \times W \times 3} x∈RHW3,所需视点的相…...

scala 安装和创建项目
Scala,一种可随您扩展的编程语言:从小型脚本到大型多平台应用程序。Scala不是Java的扩展,但它完全可以与Java互操作。在编译时,Scala文件将转换为Java字节码并在JVM(Java虚拟机)上运行。Scala被设计成面向对…...

Python办公自动化 – 自动化文本翻译和Oracle数据库操作
Python办公自动化 – 自动化文本翻译和Oracle数据库操作 以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自…...

如何在Win10电脑接收苹果手机日程提醒呢?
有很多小伙伴手机使用的是iPhone苹果手机,但办公电脑使用的win10系统的电脑,这时候如果想要在win10电脑上同步接收苹果手机上设置的日程提醒,该怎么操作呢?如何在win10电脑接收苹果手机日程提醒呢? 如果你设置的日程提…...