我使用Angular 4,Spring启动和Mysql。在当地,一切正常。我尝试在远程服务器上部署Centos 7.一切正常,但是当我访问我的网站时,它从我的本地数据库获取数据,而不是从远程服务器上的mysql数据库获取数据。
我在另一台计算机上试过,结果是一样的,它从本地计算机获取数据!
这是我的Spring boot的application.properties文件:
server.port = 8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?autoReconnect=true&useSSL=false
spring.datasource.username=username
spring.datasource.password=password
远程服务器上的 netstat -tln
(仅限有用的字段):
Proto Recv-Q Send-Q local address remote address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp6 0 0 :::8081 :::* LISTEN
Mysql数据库具有完全相同的结构和相同的用户名/密码。
- 更新 -
感谢您的建议,我最终解决了这个问题。它来自Angular和Spring之间的连接,而不是来自Spring和Mysql。
Springboot实例在我的本地计算机上运行,并且远程Angular已连接到它。在Angular的配置文件中,我将apiUrl=localhost:8081
替换为apiUrl=<my remote IP>:8081
,再次部署,我向所有人打开端口8081(Springboot的端口),现在它运行良好。
但说实话,我不喜欢这种方法,因为每个人都可以访问我的Springboot应用程序,而只需要Angular应用程序就可以访问它。如果有人有解决方案,这个问题仍然存在。感谢
答案 0 :(得分:1)
我不确定您是否需要将数据源URL指向远程位置。例如:
database.url=jdbc:mysql://192.168.0.166:3306/yourSchema?characterEncoding\=UTF-8
database.username=username
database.password=password
database.driverClassName=com.mysql.jdbc.Driver
答案 1 :(得分:0)
由于密码不正确-mysql抱怨密码错误,显示与本地IP连接时出错,请两次检查密码