Spring Boot连接EC2上MySQL遇Access denied错误,创建双用户仍未解决
问题根源与解决方案
你犯了一个关键错误:Spring Boot配置里的数据库URL写的是localhost,这会让应用尝试连接本地机器的MySQL,而不是你EC2上的远程实例,这才是权限报错的核心原因,和你创建developer@localhost用户无关。
解决步骤:
修正数据库连接URL
修改application.properties中的spring.datasource.url,把localhost替换成你的EC2实例的公网IP地址(或者弹性IP、域名):spring.datasource.url=jdbc:mysql://你的EC2公网IP:3306/exam?serverTimezone=UTC spring.datasource.username=developer spring.datasource.password=password确认EC2安全组规则
进入AWS控制台,给EC2实例所在的安全组添加入站规则:- 类型:MySQL/Aurora(3306)
- 来源:设置为你本地机器的公网IP(更安全)或者0.0.0.0/0(仅测试用,不推荐生产环境)
验证MySQL远程连接配置
登录EC2的MySQL,检查配置文件(通常是/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf):- 找到
bind-address项,设置为0.0.0.0(允许所有IP访问)或者直接注释掉该行 - 重启MySQL服务:
sudo systemctl restart mysqld(部分系统可能是mysql)
- 找到
无需额外创建localhost用户
你之前创建的developer@'%'已经允许从任何远程IP连接,完全满足Spring Boot应用的远程连接需求,不需要再创建developer@localhost用户。
内容的提问来源于stack exchange,提问作者aux
相关产品推荐
相关产品推荐

