Java

為什麼表被mysql中的伺服器刪除?

  • October 11, 2019

我在mysql中有一個表。我有一個 java 應用程序,它將繼續將數據插入到這個表中。因此,表的大小急劇增長,並在某一時刻被 mysql 伺服器自動刪除。我還不確定原因。因此,如果有人遇到此問題,請分享處理此問題的方法,以便我可以保留我的數據。

更新

這是我在伺服器的sql日誌中找到的。

> 2013-11-27T15:07:39.285156Z    9 Query    SELECT s.Sql_Id
>       ,s.Child_Number
>       ,s.Executions
>       ,s.Last_Active_Time
>       ,s.User_Io_Wait_Time
>       ,s.Object_Status
>       ,s.Plan_Hash_Value FROM   V$sql s WHERE  s.Sql_Text LIKE 'SELECT /*+ FIRST_ROWS XX */ T1.SYNC_TIMESTMP, T1.CUSTNO, T1.XAFID_ID_IFX,
> T1.XAFID_CLASSIFIED%' 2013-11-27T15:07:39.286132Z    9 Query  SHOW
> WARNINGS 2013-11-27T15:08:08.791015Z    9 Query   select
> @@session.tx_read_only
> 2013-11-27T15:08:08.791992Z    9 Query    drop table devicedata 2013-11-27T15:08:08.926757Z    9 Query    SHOW WARNINGS
> 2013-11-27T15:08:08.936523Z    9 Query    select @@session.tx_read_only

謝謝

閱讀日誌似乎使問題相當明顯:

2013-11-27T15:08:08.791992Z 9 Query drop table devicedata 

那不是mysql丟表。那是您的應用程序丟棄表格。

日誌中有另一行非常可疑:

,s.Plan_Hash_Value FROM V$sql s WHERE s.Sql_Text LIKE 'SELECT /*+ FIRST_ROWS XX */ 

V$sql 不是一個有效的表名,至少不是沒有反引號。聽起來應用程序可能正在嘗試從字元串建構表名並錯誤地建構字元串……當該查詢失敗時,它會在某種錯誤的“恢復”嘗試中丟棄表。

在程式碼中搜尋“drop”一詞。MySQL 沒有刪除表的概念,因為它太滿了。

我們遇到了類似的問題,我們失去了數據庫的所有表,但數據庫仍然在 mysql 中。問題及解決方法如下, 1) 檢查你的MYSQL/XAMPP/WAMP 安裝在哪裡 2) 檢查你是否有在你的XAMPP/MYSQL 安裝位置安裝MYSQL/XAMPP 的所有權限桌面/伺服器。

解決方案很簡單,只需在您的桌面/您有權安裝的任何其他位置重新安裝您的 XAMPP/MYSQL。您將來不會遇到此問題。請不要忘記檢查您的錯誤日誌並在每天檢查日誌後採取必要的措施。

引用自:https://dba.stackexchange.com/questions/54118