当前位置: 首页 > news >正文

tidb 集成 flyway 报错 denied to user for table global_variables

报错内容:

Caused by: java.sql.SQLException: connection disabled
    at com.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1181)
    at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1166)
    at com.alibaba.druid.pool.DruidPooledConnection.getMetaData(DruidPooledConnection.java:887)
    at org.flywaydb.core.internal.jdbc.JdbcUtils.getDatabaseMetaData(JdbcUtils.java:146)
    ... 57 common frames omitted
Caused by: java.sql.SQLSyntaxErrorException: SELECT command denied to user 'iot_customer'@'%' for table 'global_variables'
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:972)
    at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3225)
    at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:459)
    at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3222)
    at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery(PreparedStatementProxyImpl.java:166)
    at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:213)
    at org.flywaydb.core.internal.jdbc.JdbcTemplate.queryForString(JdbcTemplate.java:191)
    at org.flywaydb.core.internal.database.mysql.MySQLDatabase.isRunningInPerconaXtraDBClusterWithStrictMode(MySQLDatabase.java:66)
    at org.flywaydb.core.internal.database.mysql.MySQLDatabase.<init>(MySQLDatabase.java:61)
    at org.flywaydb.core.internal.database.DatabaseFactory.createDatabase(DatabaseFactory.java:159)
    at org.flywaydb.core.internal.database.DatabaseFactory.createDatabase(DatabaseFactory.java:92)
    at org.flywaydb.core.Flyway.execute(Flyway.java:1655)
 

这个错误产生的原因是 使用 flyway 5.2.1 , tidb 数据, 其中有一个查询

select VARIABLE_VALUE from performance_schema.global_variables where variable_name = 'pxc_strict_mode';

这个查询, performance_schema.global_variables 并不存在这个表, 所以报错

解决办法只能是tidb暂时用不了flyway, 或者升级到其它版本试试, 但是 jdk1.8只有flyway 5.2.X系列

经过测试, 授权后,可以通过, 这里面注意要大写, 刚开始的时候, 我使用小写, 也不报错, 但是不起作用, 换成大写就好了

grant SELECT on INFORMATION_SCHEMA.* to 'iot_customer'@'%';
grant SELECT on PERFORMANCE_SCHEMA.* to 'iot_customer'@'%';
flush privileges;

http://www.lryc.cn/news/272918.html

相关文章:

  • 很实用的ChatGPT网站—在线编程模块增补篇
  • A股风格因子看板 (2024.01第01期)
  • 基于gamma矫正的照片亮度调整(python和opencv实现)
  • LeetCode-Java(29)
  • 腾讯云导入导出镜像官方文档
  • keras 深度学习框架实现 手写数字识别
  • SELinux策略语法以及示例策略
  • 电路笔记 :自激振荡电路笔记 电弧打火机
  • prometheus grafana linux服务器监控
  • 有哪些有用的工作技巧?
  • k8s的网络类型
  • 《元宇宙2086》团队发布AI创作的元宇宙之歌
  • 【数据结构】数组实现队列(详细版)
  • Sharding-JDBC快速使用【笔记】
  • 总结MySQL 的一些知识点:MySQL 排序
  • Linux中经常使用的相关命令
  • 2022-2023年度广东省职业院校学生专业技能大赛“软件测试”赛项性能测试题目-Jmeter
  • R304S 指纹识别模块的硬件接口说明
  • postman使用-05新建测试集
  • oracle 子查询和窗口函数
  • 数据库开发与设计过程中的问题分析总结
  • 《数据库开发实践》之存储过程【知识点罗列+例题演练】
  • Linux进程地址空间
  • 2024.1.3 关于 Redis 渐进式遍历 和 数据库管理命令
  • 并发编程:线程同步基础:5、读写锁。ReentrantReadWriteLock
  • SpringBoot 集成 Kafka消息中间件,Docker安装Kafka环境
  • 阿里云Alibaba Cloud Linux 3镜像版本大全特性说明
  • 基于SSM的滁艺咖啡在线销售系统设计与实现
  • 【设计模式之美】理论一:怎么才算是单一原则、如何取舍单一原则
  • MYSQL 深入探索系列六 SQL执行计划