如何開啟mysql innodb存儲引擎
MySQL資料庫InnoDB存儲引擎使用了B政策,InnoDB存儲引擎中的恢複機制有幾個特點:
A.在重做RedoLog時,并不關心事務性。恢複時,沒有BEGIN,也沒有COMMIT,ROLLBACK的行為。也不關心每個日志是哪個事務的。盡管事務ID等事務相關的内容會記入RedoLog,這些内容隻是被當作要操作的資料的一部分。
B.使用B政策就必須要将UndoLog持久化,而且必須要在寫RedoLog之前将對應的UndoLog寫入磁盤。Undo和RedoLog的這種關聯,使得持久化變得複雜起來。為了降低複雜度,InnoDB将UndoLog看作資料,是以記錄UndoLog的操作也會記錄到redolog中。這樣undolog就可以象資料一樣緩存起來,而不用在redolog之前寫入磁盤了。
包含UndoLog操作的RedoLog,看起來是這樣的:
記錄1:
>
記錄2:
記錄3:
>
記錄4:
記錄5:
>
記錄6:
C.到這裡,還有一個問題沒有弄清楚。既然Redo沒有事務性,那豈不是會重新執行被復原了的事務?确實是這樣。同時Innodb也會将事務復原時的操作也記錄到redolog中。復原操作本質上也是對資料進行修改,是以復原時對資料的操作也會記錄到RedoLog中。
一個復原了的事務的RedoLog,看起來是這樣的:
記錄1:
>
記錄2:
記錄3:
>
記錄4:
記錄5:
>
記錄6:
記錄7:
記錄8:
記錄9:
一個被復原了的事務在恢複時的操作就是先redo再undo,是以不會破壞資料的一緻性.
-InnoDB存儲引擎中相關的函數
Redo:recv_recovery_from_checkpoint_start()
Undo:recv_recovery_rollback_active()
UndoLog的RedoLog:trx_undof_page_add_undo_rec_log()
如何修改MySQL的預設引擎模式
my.ini或者my.cnf裡,修改default-storage-engine=INNODB
然後重新開機mysqld
本回答由提問者推薦
如何修改MySQL的預設引擎模式
更改 Mysql 預設引擎為 InnoDB步驟如下:
Mysql預設是關閉InnoDB存儲引擎的使用的,将InnoDB設定為預設的引擎如下。
1. 檢視Mysql存儲引擎情況: mysql>show engines InnoDB | YES,說明此Mysql資料庫伺服器支援InnoDB引擎。
2. 設定InnoDB為預設引擎:在配置檔案my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB
3. 重新開機Mysql伺服器
4. 登入Mysql資料庫,mysql>show engines 如果出現 InnoDB |DEFAULT,則表示設定InnoDB為預設引擎成功。1. mysql啟動指令後添加參數 –default-storage-engine=希望使用的引擎
2. 修改mysql的配置檔案,添加如下内容:default-storage-engine=希望使用的引擎
第一種方式每次重新開機資料庫服務的時候都需要添加
第二種方式每次重新開機資料庫服務都隻要使用預設啟動指令即可
mysql 5.6 本地服務無法啟動,錯誤1067,程序意外終止?
進入“事件檢視器”“應用程式”果然發現非常多MySql的錯誤Default storage engine (InnoDB) is not available。于是進入MySql的安裝檔案夾找到my.ini裡有一句:default-storage-engine=INNODB改成MYISAM就能夠了。立即再去開啟MySql服務就能夠順利開啟了。
具體如下:
電腦常見問題解決
1、無法自動識别硬碟控制器
使用非正版的個别作業系統CD光牒,在安裝系統時,容易出現此錯誤。原因是非正版CD光牒自動加載的硬碟控制器驅動不符合電腦自身需要的驅動。這種情況就建議換正版CD光牒安裝作業系統。
2、手動更新錯誤的驅動程式