polardbx不支持Getlock 会一直返回0,会导致Flyway在这里自旋怎么处理?flyway没有配置不使用get lock。![93e217c83d33438b4ca2d5de4a087efd.png](https://ucc.alicdn.com/pic/developer-ecology/szqrsjkpu5znk_a7be075e98f3492daf7356a0b4204ad3.png)
polardbx不支持Get_lock 会一直返回0,会导致Flyway在这里自旋怎么处理?[阿里云PolarDB]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
针对这个问题,有以下几个可能的解决方案:
PolardbX 是一款完全兼容MySQL协议的关系型数据库服务,因此它可能不支持 Get_lock 函数,这可能导致 Flyway 自旋问题。为了解决这个问题,您可以考虑以下解决方案:
PolarDB X是阿里巴巴出品的云原生分布式数据库,对于您提到的Flyway问题,可以尝试以下方法解决:
在Flyway配置中添加
dataSource.setConnectionInitSqls("SET TRANSACTION ISOLATION LEVEL READ COMMITTED;");
,将事务隔离级别设置为READ COMMITTED。如果需要确保数据一致性,可以在Flyway配置中添加
dataSource.setMaximumPoolSize(1);
,将连接池大小设置为1,避免并发操作导致的问题。如果以上方法仍无法解决问题,可以考虑使用其他数据库锁机制,例如InnoDB的行锁或表锁。但请注意,这可能会影响数据库性能。
请根据您的实际需求选择合适的方法进行尝试,并注意监控数据库性能和资源使用情况。
这是关于Flyway在使用PolarDBX数据库时,由于PolarDBX不支持GET_LOCK导致的自旋问题。为了解决这个问题,您可以尝试以下方法:
flyway migrate
CopyCopy
flyway.lock-wait-timeout=0
CopyCopy
这将设置锁等待超时时间为0,从而禁用GET_LOCK。
[mysqld]
connect-timeout = 3000
socket-timeout = 3000
CopyCopy
这将分别将连接超时时间和套接字超时时间设置为3000毫秒(3秒)。
这个目前我们确实不支持.此回答整理自微信群“阿里云 PolarDB-X开源交流2号群”