2017-08-07 41 views
3

我有角4,春季引導和MySQL的。在當地,一切正常。我嘗試在遠程服務器上部署一個Centos 7.除了當我訪問我的網站時,它從我的本地數據庫獲取數據,而不是從位於遠程服務器上的mysql數據庫獲取數據。遠程啓動春季依然應用程序連接到我的本地MySQL

我嘗試另一臺計算機上,結果是一樣的,它從本地計算機獲取數據!

這裏是我的春天啓動的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數據庫具有完全相同的結構,同樣用戶名密碼。

- 更新 -

感謝的建議,我finnally解決了這個問題。它來自Angular和Spring之間的連接,而不是來自Spring和Mysql。

一個Springboot實例是在我的本地計算機上運行,​​並且遠程角連接到它。在Angular的配置文件中,我將apiUrl=localhost:8081替換爲apiUrl=<my remote IP>:8081,再次部署,我向所有人開放了端口8081(Springboot的端口),現在它運行良好。

不過說實話,因爲我Springboot APP被任何人訪問,我不喜歡這種方法,而它只需通過角應用訪問。如果有人有解決方案,這個問題仍然是開放的。由於

+0

你是告訴你的jdbc驅動程序通過數據源url連接到'localhost'。因此連接到本地主機正是它會做的。爲什麼它應該做別的事? –

+0

應用程序是部署在遠程服務器上,因此本地主機是遠程服務器,而不是我自己的設備 –

+0

你檢查你的代碼,如果你的本地計算機不被引用(通過IP或主機名)anyhwere?在這一點上可能是一切。 –

回答

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 
+0

它不起作用,問題仍然在這裏..我認爲有可能使用localhost而不是IP訪問本地mysql,它避免了爲所有人打開mysql端口 –

相關問題