使用presto-cli执行MySQL查询时无法连接数据库服务器求助
failed: Could not create connection to database server. Attempted reconnect 3 times. Giving up
针对你在Presto CLI中执行MySQL查询时遇到的连接失败问题,可按以下步骤排查:
检查MySQL服务器网络可达性
从运行Presto的机器上,用telnet mysql_host mysql_port或nc -zv mysql_host mysql_port测试网络连通性,确认端口开放且服务器能响应。如果不通,排查防火墙规则、安全组配置,或者MySQL是否仅绑定了127.0.0.1导致外部无法访问。验证MySQL用户连接权限
即使凭据正确,也要确保该用户允许从Presto服务器的IP地址连接。登录MySQL执行:SELECT host, user FROM mysql.user WHERE user='你的Presto用户名';如果host是
localhost或特定IP,而Presto不在这个范围内,更新权限:GRANT ALL PRIVILEGES ON 目标数据库.* TO '你的Presto用户名'@'Presto服务器IP' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;确认MySQL服务状态
在MySQL服务器上执行systemctl status mysql(对应系统的服务命令),确认服务正常运行。若服务异常,查看日志(如/var/log/mysql/error.log)排查启动失败原因。再次核对Catalog配置细节
重新检查mysql.properties文件:- 确保
connection-url格式正确,示例:jdbc:mysql://host:port/database?useSSL=false&serverTimezone=UTC(按需调整SSL和时区参数) - 确认
connection-user和connection-password与MySQL用户信息完全一致,注意大小写、特殊字符转义问题 - 检查配置文件是否存在语法错误,比如多余空格或不匹配的引号
- 确保
查看Presto日志定位深层原因
查看Presto coordinator的日志(默认路径/var/log/presto/server.log),里面会有更详细的连接失败堆栈信息,比如认证错误、超时或驱动问题,帮助精准定位故障点。
内容的提问来源于stack exchange,提问作者saidhanya sudhan

