SpringBoot項目啟動Application報錯——ojdbc8驅動升級后不兼容中文用戶名導致


SpringBoot項目,Application啟動時報錯,錯誤信息如下:

ERROR c.alibaba.druid.pool.DruidDataSource - [] init datasource error, url: jdbc:oracle:thin:@10.0.0.6:1521/cba

java.sql.SQLRecoverableException: IO 錯誤: Undefined Error
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:774)
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691)......

問題相當奇怪,其他同事直接從git上檢出代碼能直接運行,只有我的電腦不行,百思不得其解,前后耗時大約10個小時,通過不斷調試終於找到原因,特此記錄一下。

1.數據庫連接時有一個參數:oracle.jdbc.v$session.osuser,取值為System.getProperty("user.name")

2.我的win10系統設置的用戶名是中文的。

ojdbc不能很好的兼容中文,導致了這個連接問題。

解決方案:

1.啟動時增加代碼:System.setProperty("user.name", "English Name");

2.修改操作系統用戶名為英文名,不要包含中文。

總結:在使用國外的軟件或者jar包時,盡量避免中文,包括文件路徑也盡量不要包含中文,可以減少很多麻煩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM