MySQL-ODBC以第二用户连接失败,Workbench与CLI连接正常
解决ODBC连接MySQL PBI用户权限拒绝问题
可能的原因与解决步骤
1. 检查用户主机匹配规则
MySQL的权限是基于user@host组合生效的,ODBC通过SSH隧道连接时,请求会被识别为来自localhost,如果你的PBI用户创建时指定的主机不是localhost或%,就会触发权限拒绝。
- 执行以下命令查看PBI用户的主机配置:
SELECT user, host FROM mysql.user WHERE user = 'PBI'; - 如果结果中没有
PBI@localhost,需要创建对应主机的用户并按需授权:CREATE USER 'PBI'@'localhost' IDENTIFIED BY '你的密码'; GRANT SELECT, SHOW VIEW ON 报表所需数据库.* TO 'PBI'@'localhost'; -- 按需分配最小权限,无需给ALL FLUSH PRIVILEGES;
2. 修正ODBC数据源配置
- 确保ODBC配置里的用户名仅填
PBI,不要附加@localhost后缀,部分ODBC驱动会自动拼接主机名,导致用户身份匹配失败。 - 尝试关闭SSL连接:在ODBC数据源的高级设置中添加
SSL Mode=DISABLED参数(MySQL 8.0默认开启SSL,部分旧版ODBC驱动兼容性较差)。
3. 切换用户认证插件
MySQL 8.0默认使用caching_sha2_password认证插件,部分ODBC驱动对该插件支持不完善,可切换为兼容性更好的mysql_native_password:
ALTER USER 'PBI'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;
4. 验证权限生效
重新配置ODBC连接后测试连接;如果问题仍存在,可开启MySQL的通用日志或错误日志,查看更详细的权限拒绝原因。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

