2012-08-15 101 views
1

我正在與MySQL數據庫的C#項目。我有一個日誌文件,我想將這個文件存儲在數據庫中。保存文件到MySQL數據庫

我想將實際的文件保存到數據庫中,但是我所看到的是您必須將其編碼爲字符串或將字節寫入字符串並將其放入數據庫,這是它如何工作來存儲該文件,我認爲你可以給命令的文件路徑,它將它存儲在數據庫中,而不需要我在軟件中執行所有編碼。

如果這有什麼不同,它將需要從PHP中重新檢索,但我猜測這應該不重要。

回答

1

是的,你必須將它編碼爲字符串或字節來存儲文件。另一種方法是存儲日誌文件的位置,而不是將日誌文件保存在磁盤上的某處。

0

您的程序將不得不解析日誌文件並將其轉換爲SQL查詢。

0

如果要將文件的內容存儲在數據庫中,那麼您需要對其進行編碼或將字節存儲在表列中。這是沒有辦法的。

如果你想簡單地存儲文件的路徑,那麼你所需要做的就是將路徑作爲參數傳遞給你的文件系統,但是當你在文件系統中移動文件時,你的記錄將是無效的,明顯。

Link有關與哪種方法最好有關的問題:將文件的內容存儲在數據庫中或簡單地存儲在文件系統中的路徑。

0

爲什麼不使用Log4Net?它能夠自動登錄到數據庫。看看https://logging.apache.org/log4net/release/config-examples.html關於如何連接數據庫的細節log4net的

orignal decayed link: http://logging.apache.org/log4net/release/sdk/log4net.Appender.AdoNetAppender.html

+0

不幸的是,您的鏈接已經腐爛。 – JohnP 2017-01-26 16:12:51

+0

@JohnP謝謝 - 我添加了一個鏈接到配置示例,不幸的是MySQL並不直接鏈接到那裏,但這些示例提供了足夠的信息來弄清楚它 – 2017-01-26 16:55:37

1

這可能聽起來有點可笑,但你應該看看LOAD_FILE function

下面是MySQL文檔

的例子
mysql> UPDATE t 
     SET blob_col=LOAD_FILE('/tmp/picture') 
     WHERE id=1; 

只要日誌文件小到足以放入一個BLOB,那麼這就是你唯一的機會吧

如果日誌文件太大,請將日誌文件歸檔到某處並保存文件位置