Posted on 2008-07-04 15:09
Fingki.li 閱讀(326)
評論(0) 編輯 收藏 所屬分類:
About linux
工作中的需要,將一個軟件應(yīng)用的數(shù)據(jù)庫由hsql轉(zhuǎn)為postgresql.
從Hsql中轉(zhuǎn)數(shù)據(jù)到postgresql時,我采用的是從 dbname.script中獲取數(shù)據(jù)的腳本,寫成新的dbname.sql,然后在postgresql中執(zhí)行的方法。
經(jīng)過一番努力,終于如愿以常成功導(dǎo)入了數(shù)據(jù)。
大概瀏覽一下數(shù)據(jù),沒有什么問題,就放心的讓同事去測試了。
不到一會兒的工夫,同事就找過來,說軟件應(yīng)用中的原用戶無法登錄,報錯為用戶的privatekey無法解開(此應(yīng)用采用數(shù)字證書認(rèn)證,并且加密了privatekey存于數(shù)據(jù)庫)。
我很是奇怪。
讓同事新創(chuàng)建用戶,正常 ,也可以正常登錄。
于是斷定為數(shù)據(jù)有問題。
打開數(shù)據(jù)庫查看用戶信息表,發(fā)現(xiàn)privatekeyinfo字段中的數(shù)據(jù)中有好多 u000a,感覺不對,再查看一下新創(chuàng)建的用戶,這個字段中沒有。
找來dbname.sql查看,果真里面有好多\u000a,實際上這一位置應(yīng)為回車.替換所有的\u000a為回車,重新導(dǎo)入數(shù)據(jù)。
一切OK了。
個人感覺原因是:hsql的sql腳本不支持回車符,所以用\u000a代替;而在postgresql中,數(shù)據(jù)庫不認(rèn)\u000a,導(dǎo)致數(shù)據(jù)被修改。
從而privatekey無法正常解開。
希望朋友們不要再走進(jìn)這個誤區(qū)。