
MySQL、Oracle、PostgreSQL
MySQL、Oracle、PostgreSQL相关文章
拄杖忙学轻声码
希望学习的同时也能和大家交流分享技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
shardingsphere-jdbc集成Seata分布式事务
【1】shardingsphere-transaction-base-seata-at 的版本最好与 shardingsphere-jdbc 版本一致。(1)事务组名称可以自定义,但要与seata服务端配置文件(seata-server.yml)中配置的事务组名称一致(否则报错),【1】shardingsphere-jdbc 集成 seata 与 单数据源集成 seata 完全是各自独立的方式(不搭嘎)【2】在被调用方的服务中配置 seata 支持的事务传播拦截器,获取调用方传递过来的 TX_XID。原创 2025-04-16 14:30:00 · 781 阅读 · 0 评论 -
MySql 主从复制,常见的问题
【2】master_auto_position 启动GTID自动定位,如果处于1启动状态则主从链路无法设置(master_log_file、master_log_pos)等信息。slave-skip-errors 的取值可查看 Last_SQL_Errno 的值,与之对应。【2】分别重启mysql服务后,在从服务更新主从链路信息(启用 GTID 自动定位)3、配置主服务器,修改my.cnf文件,允许非 SSL 连接(关闭安全连接)【1】master_auto_position 对应的值:1-开、0-关。原创 2025-04-07 10:30:00 · 468 阅读 · 0 评论 -
集成 shardingsphere-jdbc 常见问题
1、sharding.yml 文件中配置项要求非常严格,注意属性缩进、最好也不要出现汉字(包括注释汉字)、不能配置 shardingsphere-jdbc 不需要的额外其他属性。【2】actualDataNodes:把逻辑表映射到实际表命名规则。语法:数据源逻辑名_序号索引值.逻辑表名称_序号索引值,示例:ds_${0..1}.t_${0..1}【1】t:是逻辑表名称(一般取表前缀),逻辑表和实际表映射。【1】不配置此项加载单表,则会报错。2、违反1规则,可能会报错。原创 2025-03-29 14:30:00 · 542 阅读 · 0 评论 -
SpringBoot3.x 集成 shardingsphere-jdbc 实现读写分离
【1】jdbc:shardingsphere:classpath:是数据源配置文件路径的前置固定写法,后面sharding-config.yml是刚才创建的数据源配置文件目录和名称。3、打开 bootstrap.yml 文件,添加 ShardingSphereDriver 驱动,以及数据源配置文件的路径。1、在 resources 目录下创建 sharding-config.yml 文件,并添加配置信息。【2】读写库配置、负载均衡规则、分片配置逻辑表等。【3】不同数据源对应的url属性有所不同,说明。原创 2025-03-29 10:30:00 · 572 阅读 · 0 评论 -
安装MySql服务集群,主从复制模式,MySql 8.x为例
主从复制是一种异步复制模式,允许将一个主数据库的数据复制到一个或多个从数据库,所有的写操作都在主数据库上执行,而从数据库主要用于读操作。1、在大型互联网系统、高并发场景中,Mysql主从复制用于实现读写分离,可以有效减轻主库负载压力。4、查看 server-id 的值,必须为上面设置的2,否则请返回修改配置文件。2、锁定数据表并导出数据库,在配置从服务器之前,需要确保数据的一致性。1、修改 my.cnf 配置文件,在 [mysqld] 下添加。1、在主服务登录 mysql ,创建复制专用用户,并赋予权限。原创 2024-12-29 03:50:28 · 408 阅读 · 0 评论 -
MySQL中ddl操作或创建索引防止锁表的一些建议或解决方案
【说明】目前没有任何一种办法可以保证在DDL操作下能完全避免锁表。(1)lock的可选项除了 none,还可以使用 shared(共享锁:允许读操作,但会阻塞写操作)【说明】使用 algorithm = inplace 原地算法,减少对数据库性能的影响。(2)在生产环境中对数据量较大的表进行DDL操作,选择在流量较小的时段执行较为合适。【说明】使用 lock = none 明确告诉MySQL在创建索引时不锁表。(1)建议在生产环境中进行任何重大DDL更改,都要在测试环境充分测试验证。原创 2025-02-17 15:00:00 · 470 阅读 · 0 评论 -
mysql实现对字符列第一个汉字首字母拼音进行A-Z顺序排序,使用gbk编码
在特殊场景中,需要对某列进行排序,预期是按照汉字拼音首字母进行排序,如果使用字段直接排序会发现不符合预期,那么需要做一些特殊处理。2、如果使用 conver() 执行时日志输出有报错,推荐使用 cast() 函数对第一个汉字编码类型转换为 gbk 后,再进行排序。1、使用 convert() 函数对第一个汉字编码类型转换为 gbk 后,再进行排序。从结果可以看出,符合预期排序。从结果可以看出,符合预期排序。从结果看,很明显不符合预期。原创 2025-01-10 10:30:00 · 612 阅读 · 0 评论 -
windows系统安装mysql,版本[8.3.0、9.0.1](压缩包方式)
(2)也可以指定 datadir=D:\xxx\xxx\data,datadir 为数据或日志文件存放目录地址。1、解压后,将安装目录下的bin添加至系统环境变量 PATH 路径中。(1)这里不需要指定 datadir=D:\xxx\xxx\data。1、切换目录至mysql主目录的bin文件夹下,执行cmd命令。1、默认密码是随机串不好记,登录mysql数据库修改密码。2、执行后输出信息,需要记录生成的默认 root 密码。2、修改,例如将密码修改为 root123。4、删除对应的安装目录文件。原创 2024-12-30 10:30:00 · 913 阅读 · 0 评论 -
MySql常用函数之 avg()、between min and max 等
2、如果关联的表数量是N张表,则会输出N张表的笛卡尔集合,按顺序 表1条目数 * 表2条目数 * 表3条目数 ...验证点:where关联查询,使用 between min and max 作为关联条件。1、where关联查询,如果不设关联条件,结果将会输出两表的笛卡尔集合。验证点:左边关联查询,group by 与 count() 结合。验证点:用子查询获取当前用户所在部门人员的平均薪资。3、 查询月薪大于员工所在部门平均月薪的员工。1、查询部门人数大于1的部门信息。2、查询员工薪资等级。原创 2024-11-30 10:30:00 · 267 阅读 · 0 评论 -
Mysql数据库的锁机制
如果更新失败(受影响行数为0)则说明此数据已被别的线程更新,此时自旋读取最新的版本号继续更新即可,直到自旋更新成功(受影响行数大于0)多个事务对同一条数据进行并发修改时,此时就会产生你等我释放事务、我等你释放事务,以此循环等待对方释放事务,故称为死锁。(1)update 更新数据时,如果 where 更新条件是主键id或是具有使用索引的列,此时就会进行行锁,否则会升级为表锁。(1)update 更新数据时,条件尽量使用主键id或其他条件索引列,避免升级为表锁,减少事务时间也可以减少死锁的概率。原创 2024-11-26 10:30:00 · 377 阅读 · 0 评论 -
SpringCloud微服务项目之间跨库联合查询简单的解决方案
4、如果被联合的表结构发生变化或者库服务地址等属性发生变化(必须符合快捷表的connection连接规则),对应的快捷表结构也要跟随变化或重新创建。(1)由于 db_hwy.t_one 表是 db_aly.t_one 表的快捷表,因此在 db_aly.t_one 表中添加数据即可。1、要实现跨库联合查询,前提是双方数据库服务都要开启(FEDERATED)联邦机制,才可以创建并使用快捷表。2、数据服务库:库(db_aly)、表(t_one)3、数据服务库:库(db_hwy)、表(t_one)原创 2024-10-30 14:30:00 · 507 阅读 · 0 评论 -
解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource coul
1、导入 mybatis plus 依赖后,会自动装配并连接数据源。2、排除自动装配数据源。原创 2024-10-25 10:00:00 · 452 阅读 · 0 评论 -
SpringCloud微服务项目mysql不同数据库之间跨库联合查询,使用快捷表实现跨库分页查询等解决方案
在分布式微服务项目中,经常有需要关联查询其他表信息的业务,但分布式项目中分库是肯定的,不同服务的数据库服务可能部署在不同的机器上,以下是几种跨库联查分页的几种解决方式。4、如果被联合的表结构发生变化或者库服务地址等属性发生变化(必须符合快捷表的connection连接规则),对应的快捷表结构也要跟随变化或重新创建。2、同步数据可以使用异步消息同步,比如源服务更新了数据,丢到mq,目标服务消费后根据外键更新冗余的属性值即可。1、顾名思义,表冗余,这样需要维护表的数据,,同步数据相当于多存一份数据。原创 2024-09-05 10:00:00 · 609 阅读 · 0 评论 -
mysql中日期函数now()和sysdate()的区别
区别:now()获取的是sql脚本执行开始的系统日期时间,sysdate()获取的是sql脚本执行结束的系统日期时间。在mysql数据库中,now()、sysdate() 都是获取系统当前日期时间。1、 now()和sysdate()都可以获取系统当前日期时间。原创 2024-04-26 15:53:57 · 1506 阅读 · 1 评论 -
MySql常用函数之 convert()、str_to_date()、date_format()、date()、time()、cast()、to_base64()、from_base64()等使用介绍
3、date()获取日期,time()获取时间,cast()铸造重塑日期时间。1、将日期字符串转换为date、datetime类型。2、将date、datetime转换为日期字符串。2、将日期字符串转换为 datetime 类型。4、将字符串转换为 decimal 类型。1、将日期字符串转换为 date 类型。2、from_base64() 解码。3、将日期转换为 time 类型。1、to_base64() 编码。6、将字符串转换为数字类型。5、将数字转换为字符类型。原创 2024-01-06 23:59:24 · 2782 阅读 · 0 评论 -
windows系统连接同局域网下的其他电脑mysql等服务
2、成功连接局域网配置的另一台mysql服务。【3】新建入站规则,设置全部端口或指定端口。3、设置允许访问的入站端口。【1】 防火墙-高级设置。2、设置局域网共享网络。原创 2023-12-24 18:41:07 · 2327 阅读 · 0 评论 -
Docker安装MySql教程步骤
v /devtools/mysqldata/mysql-files:/var/lib/mysql-files:将容器 /var/lib/mysql-files 目录下的数据,备份到宿主机的 /devtools/mysqldata/mysql-files 目录下。-v /devtools/mysqldata/data:/var/lib/mysql:将容器 /var/lib/mysql 目录下的数据,备份到宿主机的 /devtools/mysqldata/data 目录下。左为宿主机端口、右为容器端口。原创 2022-06-25 06:30:17 · 7472 阅读 · 0 评论 -
MySql脚本 asc 排序字段空值条目靠后的写法
mysql中如果使用正序 asc 排序,那么默认是把排序字段值为空的条目数据,优先排到前面,这明显不符合需求,解决如下。2、但是使用 asc 正序排序有问题,会把排序字段值为空的排在前面,不符合要求。1、由结果输出可以看到 desc 倒序没问题,排序字段值为空的排在后面。2、排序字段非空才参与排序,为空直接给个大的默认值排到最后。1、从结果看符合预期。原创 2023-06-30 14:15:13 · 844 阅读 · 0 评论 -
MyBatis Plus Mapper.xml映射文件常用标签<if>、<foreach>、#{}、${}等
2、常规获取参数使用 #{} 占位符即可,特殊情况也可以使用 ${} 拼接(例如根据多字段排序,需要使用 ${} 直接拼接,使用 #{} 不生效会报错)2、判断 String 字符串类型等于某个值,值需要加单引号,并且用 .toString() 转成字符串类型条件才会生效。1、判断集合类参数,判断!注意:判断常数类参数,只能判断!3、当使用 #{} 占位符不生效或报错的情况下,直接使用 ${} 拼接即可。注意:判断字符串类参数可以判断!1、#{} 是占位符,${} 是拼接参数。原创 2023-06-16 00:50:36 · 6275 阅读 · 0 评论 -
解决:Unable to find a match: mysql-community-server
安装前需要先禁用 mysql 模块,再安装启动就可以了。在网上找了一下,最后找到解决办法。原创 2022-06-26 14:17:40 · 5053 阅读 · 1 评论 -
Mybatis Plus插入数据事务控制常见异常、报错问题,No value for key,Transaction is already completed,ResultSet is from UP
2、此错误是声明式事务和手动控制事务相冲突,如果在代码中有涉及到手动控制注入数据源事务管理Bean对象 DataSourceTransactionManager,如果出现上述问题,请开启声明事务:@Transactional(rollbackFor = {Exception.class})3、如果方法内部调用的保存或删除方法也走Spring事务管理、或者内部方法开启的有新的事务,那么内部方法也要开启声明式事务:@Transactional(rollbackFor = {Exception.class})原创 2023-02-20 05:25:06 · 4306 阅读 · 0 评论 -
Navicat连接oracle数据库,报connection to server failed, probable Oracle Net admin error问题解决
3、解压后,把 instantclient_11_2 复制到 Navicat 安装的主目录下。4、配置 Navicat 客户端的环境变量,选择下载的 oci.dll 文件。因为oci驱动版本和数据库服务版本不一致。重启 Navicat 客户端,即可连接。1、下载对应数据库版本的 oci 文件。原创 2023-01-06 09:41:32 · 1412 阅读 · 0 评论 -
MySQL时区问题日期时差8个小时,解决方法
我们在mysql客户端查询 now() 系统当前日期时间,会发现得到的结果比系统实际日期时间慢8个小时左右,这是由于不同的时区导致的。,需要查看 mysql 容器的系统日期是否正确,如果不正确,需要调整 mysql 容器内的系统日期时间。共享主机的 localtime,在创建容器的时候指定启动参数,挂载 localtime 文件到容器内。1、在 mysql 的服务端的 my.conf 文件中 [mysqld] 节点下设置时区参数。2、如果 mysql 的版本是 5.7 配置如下参数。原创 2022-12-23 01:59:23 · 9636 阅读 · 2 评论 -
MySQL的事务四大特性(ACID)、事务隔离级别、事务失效场景详解
对于同一行记录,写会加“写锁”、读会加“读锁”,当出现锁冲突时,后访问的事务需要等前一个事务执行完成,才能继续执行。幻读:一个事务执行两次查询,但第二次查询比第一次查询多出了一些数据行、或者第二次查询的数据和第二次查询的数据结果不一致。原子性是指事务必须是一个原子的操作,事务中包含的各项操作在一次执行过程中,要么都发生,要么都不发生。事务的隔离性是指在并发场景中,每个事务之间是互相隔离、互相独立的,一个事务的执行不能被其它事务干扰。一个事务执行过程中读到的数据,总是跟这个事务在启动时读到的数据是一致的。原创 2022-01-06 11:13:06 · 2169 阅读 · 0 评论 -
Spring对MySQL的事务传播机制说明、以及声明式事务控制的优先级理解
2、如果主方法上没有标记 @TransactionDefinition 注解,那么会以内部调用方法上标记的 @TransactionDefinition 事务一致性为准,若内部调用多个方法,每个被调用的方法以自己的事务控制为准,不影响其他被调用方法的事务。3、解决方案一:嵌套调用,用自定义注解的方法调用标记事务注解的方法,这样在 aop 环切时执行完毕自定义注解的方法的同时、事务注解方法就已经在自定义注解方法中被调用了,环切方法 proceed() 后就可以获取到事务提交后的最新数据了。原创 2022-09-27 10:40:34 · 372 阅读 · 0 评论 -
MySQL索引、使用场景、失效场景、回表、索引覆盖
【1】例如有一张用户表t_user_info,id是主键索引,user_name是非主键索引,如果通过非主键索引查询整行记录,就需要先通过非主键索引user_name查询到聚簇索引也就是主键索引拿到id,再根据id查询到整条记录,这个需要回表。可以看到,此时使用到了user_name索引,但是最后的 Extra 的值为 Using index,这就表示用到了索引覆盖扫描,此时直接从索引中过滤不需要的记录并返回命中的结果,这一步是在 MySQL 服务器底层完成的,并且不需要回表。原创 2022-11-30 18:19:38 · 2572 阅读 · 0 评论 -
MySql执行计划(explain)释义信息的type属性说明
const/system:单条记录,系统会把匹配行中的其他列作为常数处理。range:索引范围扫描,常用语原创 2022-11-30 16:19:59 · 2551 阅读 · 0 评论 -
mysql创建用户、设置密码、授权等操作
(2):这里的 all privileges 可以替换为 select, update, delete, insert, drop, create 等。(5):with grant option 表示该用户可以给其他用户授权,但是不能超过该用户的权限。(4):''@'' 艾特符号左右分别代表(用户名)和(访问权限),%为不限制IP访问。(1):all privileges 所有权限。(3):*.* 左右星号分别为数据库和数据表。原创 2022-10-27 00:33:45 · 5384 阅读 · 2 评论 -
MySQL执行脚本或连接访问报Access denied for user ‘root‘@‘%‘ to database ‘xxx‘
也可以给该用户指定授权 CRUD 权限等。1、该用户的权限不足或权限没有打开。需要重启mysql服务。原创 2022-10-09 10:08:04 · 2977 阅读 · 0 评论 -
mysql执行大批量脚本报错,需要调整max_allowed_packet变量值的大小
1、解决方法,修改 my.conf 文件内容配置的 max_allowed_packet=500M 即可。在配置内容的 [mysqld] 节点下添加 max_allowed_packet=500M。2、配置完成后,重启 mysql 服务即可生效。原创 2022-08-12 01:56:22 · 1639 阅读 · 0 评论 -
MySQL忘记root密码解决方案
系统提示输入密码,可以直接回车登入。原创 2022-07-11 12:54:07 · 8922 阅读 · 1 评论 -
Linux系统安装MySQL-(rpm方式)
6、如果执行 yum install -y mysql-community-server 报这个错:Unable to find a match: mysql-community-server。4、如果安装mysql报GPG相关的错误,就修改 mysql-community.repo 文件。3、rpm源安装完成后,会在 /etc/yum.repos.d/ 文件夹下增加两个文件。5、使用 yum 安装 mysql 服务。2、安装下载好的文件 rpm 源文件。2、重置密码、授权、开放远程IP访问。原创 2022-06-26 13:32:36 · 1395 阅读 · 0 评论 -
Linux系统安装MySQL,压缩包方式(tar.xz)
(2)如果是自定义安装路径,则需要修改mysql根路径下 support-files 目录中的 mysql.server 文件,将默认路径"/usr/local/mysql"改为自定义的实际安装路径,否则将无法启动。-S /xxx/mysql/tmp/mysql.sock解释:mysql.sock是mysql的套接字文件路径。(1)解压版的mysql安装包,默认的安装路径是:/usr/local/mysql。这里我的实际安装目录是 /tools/mysql9/mysql/原创 2022-06-26 11:06:24 · 1442 阅读 · 0 评论 -
Linux系统操作MySql常用命令
2、权限:all(所有权限),usage(无权限),select,update,insert,delete(指定权限),update(字段1,......,字段N) 指定字段。:撤销root用户的所有权限。原创 2022-06-25 17:47:28 · 1302 阅读 · 0 评论 -
mysql中常见索引失效的场景
1、条件中索引列类型不匹配2、条件中索引列有运算3、条件中索引列使用函数4、联合索引未使用左侧字段5、条件中使用or关键字原创 2022-03-17 00:02:44 · 157 阅读 · 0 评论 -
MySql查看数据库变量信息常用脚本
七、查看、设置(修改)数据库表的字符编码。四、查看和设置当前库的事务隔离级别。八、查看相关进程列表,事物进程等。六、查看表全部字段信息。原创 2022-01-14 18:02:23 · 909 阅读 · 0 评论 -
MySql库格式化日期语法(日期和字符串互相转换)
【代码】MySql库格式化日期语法(日期和字符串互相转换)原创 2021-12-09 10:56:59 · 1288 阅读 · 0 评论 -
MySql数据库版本不同,需要不同的连接驱动写法
mysql5.x版本和8.x版本和驱动版本不对应会导致报错:Could not create connection to database server。原创 2021-11-30 20:07:39 · 2599 阅读 · 0 评论 -
oracle库查看当前库占用多少内存空间
【代码】oracle库查看当前库占用多少内存空间。原创 2021-08-28 23:27:49 · 1871 阅读 · 0 评论 -
MySql表设计经验记录
二、一对多数据表,在实际业务场景中,主表数据只有一个,从表数据经常会不定时新增数据,每次新增从表数据时可以把这条最新的数据(Id或编号)更新到主表中(用来标识获取从表最新的一条数据)2、不同业务、同逻辑,例如建立一张 t_business_xxx 表,里面有两个必须的核心字段 businessType(业务类型)、businessId(业务id)3、也可以只控制部分从表数据标识同步主表标识,只需限定好同步标识的从表数据的条件范围即可。一、缓存、表设计(多对多关系表、最新一条数据Id冗余设计法)原创 2021-11-11 21:48:03 · 171 阅读 · 1 评论