Google Cloud BQ联邦查询MySQL报1146错误:目标表不存在求助
解决Google Cloud联邦查询MySQL时表不存在的问题
排查与修复步骤
- 核对表名大小写:Linux环境下MySQL默认区分表名大小写(由
lower_case_table_names参数控制)。先通过查询确认实例中实际表名:
若实际表名是小写的SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'xpotoolsdb';authuser,则调整联邦查询语句的表名大小写后重试。 - 明确指定数据库上下文:如果联邦连接未默认绑定
xpotoolsdb,可以在查询语句中先切换数据库:
或者直接在表名前带正确的库名(注意大小写匹配):SELECT * FROM EXTERNAL_QUERY("xxxxxxx", "USE xpotoolsdb; SELECT * FROM AuthUser;");SELECT * FROM EXTERNAL_QUERY("xxxxxxx", "SELECT * FROM xpotoolsdb.authuser;"); - 检查联邦账号权限:确认用于联邦连接的MySQL账号拥有目标表的
SELECT权限,执行以下语句验证:
若权限不足,执行授权语句:SHOW GRANTS FOR 'your_federation_user'@'%';GRANT SELECT ON xpotoolsdb.AuthUser TO 'your_federation_user'@'%'; - 直接验证MySQL实例端:登录到目标MySQL实例,执行
USE xpotoolsdb; SELECT * FROM AuthUser;,确认表确实存在且能正常查询,排除实例端自身的问题。
内容的提问来源于stack exchange,提问作者Tirso Martinez
相关产品推荐
相关产品推荐

