欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)MySQL日志操作的一些基本命令總結(jié)

 更新時(shí)間:2015年11月18日 10:51:21   作者:muxinqing  
這篇文章主要介紹了對(duì)MySQL日志操作的一些基本命令總結(jié),其中重點(diǎn)講述了二進(jìn)制日志文件的相關(guān)方面,需要的朋友可以參考下

MySQL日志主要包含:錯(cuò)誤日志、查詢?nèi)罩?、慢查詢?nèi)罩尽⑹聞?wù)日志、二進(jìn)制日志;

日志是mysql數(shù)據(jù)庫(kù)的重要組成部分。日志文件中記錄著mysql數(shù)據(jù)庫(kù)運(yùn)行期間發(fā)生的變化;也就是說(shuō)用來(lái)記錄mysql數(shù)據(jù)庫(kù)的客戶端連接狀況、SQL語(yǔ)句的執(zhí)行情況和錯(cuò)誤信息等。當(dāng)數(shù)據(jù)庫(kù)遭到意外的損壞時(shí),可以通過(guò)日志查看文件出錯(cuò)的原因,并且可以通過(guò)日志文件進(jìn)行數(shù)據(jù)恢復(fù)。

錯(cuò)誤日志

在mysql數(shù)據(jù)庫(kù)中,錯(cuò)誤日志功能是默認(rèn)開(kāi)啟的。并且,錯(cuò)誤日志無(wú)法被禁止。默認(rèn)情況下,錯(cuò)誤日志存儲(chǔ)在mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)文件中。錯(cuò)誤日志文件通常的名稱為hostname.err。其中,hostname表示服務(wù)器主機(jī)名。

錯(cuò)誤日志信息可以自己進(jìn)行配置的,錯(cuò)誤日志所記錄的信息是可以通過(guò)log-error和log-warnings來(lái)定義的,其中l(wèi)og-err是定義是否啟用錯(cuò)誤日志的功能和錯(cuò)誤日志的存儲(chǔ)位置,log-warnings是定義是否將警告信息也定義至錯(cuò)誤日志中。默認(rèn)情況下錯(cuò)誤日志大概記錄以下幾個(gè)方面的信息:服務(wù)器啟動(dòng)和關(guān)閉過(guò)程中的信息(未必是錯(cuò)誤信息,如mysql如何啟動(dòng)InnoDB的表空間文件的、如何初始化自己的存儲(chǔ)引擎的等等)、服務(wù)器運(yùn)行過(guò)程中的錯(cuò)誤信息、事件調(diào)度器運(yùn)行一個(gè)事件時(shí)產(chǎn)生的信息、在從服務(wù)器上啟動(dòng)服務(wù)器進(jìn)程時(shí)產(chǎn)生的信息。

下面我們來(lái)定義mysql錯(cuò)誤日志的功能:

一般而言,日志級(jí)別的定義沒(méi)有回話變量都只是在全局級(jí)別下進(jìn)行定義。


是否啟用了日志

mysql>show variables like 'log_bin';

怎樣知道當(dāng)前的日志
mysql> show master status;

二進(jìn)制日志文件
看二進(jìn)制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者
shell>mysqlbinlog mail-bin.000001 | tail
備注:日志目錄如果沒(méi)有指定,則默認(rèn)在datadir配置目錄下,通過(guò)my.ini查看該配置目錄
Windows 下用類似的命令。

在5.6及以上版本一定要手動(dòng)指定。5.6以下版本默認(rèn)file_name為$datadir/mysqld-binlog
二進(jìn)制日志用于記錄所有更改數(shù)據(jù)的語(yǔ)句。主要用于復(fù)制和即時(shí)點(diǎn)恢復(fù)。
查看二進(jìn)制日志的工具為:mysqlbinlog
二進(jìn)制日志包含了所有更新了數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)(例如,沒(méi)有匹配任何行的一個(gè)DELETE)的所有語(yǔ)句。語(yǔ)句以“事件”的形式保存,它描述數(shù)據(jù)更改。二進(jìn)制日志還包含關(guān)于每個(gè)更新數(shù)據(jù)庫(kù)的語(yǔ)句的執(zhí)行時(shí)間信息。它不包含沒(méi)有修改任何數(shù)據(jù)的語(yǔ)句。
二進(jìn)制日志的主要目的是在數(shù)據(jù)庫(kù)存在故障時(shí),恢復(fù)時(shí)能夠最大可能地更新數(shù)據(jù)庫(kù)(即時(shí)點(diǎn)恢復(fù)),因?yàn)槎M(jìn)制日志包含備份后進(jìn)行的所有更新。二進(jìn)制日志還用于在主復(fù)制服務(wù)器上記錄所有將發(fā)送給從服務(wù)器的語(yǔ)句。
那么二進(jìn)制日志是記錄執(zhí)行的語(yǔ)句還是執(zhí)行后的結(jié)果數(shù)據(jù)呢?
第一種情況:
加入一個(gè)表有10萬(wàn)行數(shù)據(jù),而現(xiàn)在要執(zhí)行一個(gè)如下語(yǔ)句將amount字段的值全部在原來(lái)的基礎(chǔ)上增加1000:

UPDATE sales.january SET amount=amount+1000;

此時(shí)如果要記錄執(zhí)行后的結(jié)果數(shù)據(jù)的話,日志會(huì)非常大。
因此在這種情況下應(yīng)記錄執(zhí)行語(yǔ)句。這種方式就是基于語(yǔ)句的二進(jìn)制日志。
第二種情況:
如果向某個(gè)字段插入的是當(dāng)前的時(shí)間呢?如下:

INSERT INTO tb SET Birthdate=CURRENT_TIME();

此時(shí)就不能記錄語(yǔ)句了,因?yàn)椴煌瑫r(shí)間執(zhí)行的結(jié)果是不一樣的。這是應(yīng)該記錄這一行的值,這種就是基于行(row)的二進(jìn)制日志。
在有些情況,可能會(huì)結(jié)合兩種方式來(lái)記錄,這種叫做混合方式的二進(jìn)制日志。
二進(jìn)制日志記錄時(shí)間:
默認(rèn)情況下,并不是每次寫入時(shí)都將二進(jìn)制日志與硬盤同步。因此如果操作系統(tǒng)或機(jī)器(不僅僅是MySQL服務(wù)器)崩潰,有可能二進(jìn)制日志中最后的語(yǔ)句丟失了。要想防止這種情況,你可以使用sync_binlog全局變量(1是最安全的值,但也是最慢的),使二進(jìn)制日志在每N次二進(jìn)制日志寫入后與硬盤同步。
對(duì)非事務(wù)表的更新執(zhí)行完畢后立即保存到二進(jìn)制日志中。對(duì)于事務(wù)表,例如BDB或InnoDB表,所有更改表的更新(UPDATE、DELETE或INSERT) 被緩存起來(lái),直到服務(wù)器接收到COMMIT語(yǔ)句。在該點(diǎn),執(zhí)行完COMMIT之前,mysqld將整個(gè)事務(wù)寫入二進(jìn)制日志。當(dāng)處理事務(wù)的線程啟動(dòng)時(shí),它為緩沖查詢分配binlog_cache_size大小的內(nèi)存。如果語(yǔ)句大于該值,線程則打開(kāi)臨時(shí)文件來(lái)保存事務(wù)。線程結(jié)束后臨時(shí)文件被刪除。

日志恢復(fù):(數(shù)據(jù)庫(kù)備份時(shí)間:2013-02-30 10:10:10 數(shù)據(jù)出錯(cuò)前一刻時(shí)間:2013-02-30 10:10:10)
利用mysqlbinlog.exe工具
(1)打開(kāi)cmd,進(jìn)入到日志目錄下
(2)恢復(fù)備份數(shù)據(jù)庫(kù)
(3)重新執(zhí)行從備份數(shù)據(jù)庫(kù)開(kāi)始到出錯(cuò)前一刻日志,
例如1:用時(shí)間段恢復(fù)

mysqlbinlog --start-datetime="2013-02-30 10:10:10" --stop-datetime="2013-02-30 10:10:10" log.00001 | mysql -uroot -p123456

由于在測(cè)試中發(fā)現(xiàn),用時(shí)間進(jìn)行恢復(fù),恢復(fù)這個(gè)時(shí)間段sql并不準(zhǔn)確,特此標(biāo)注(待研究)
例如2:用日志位置進(jìn)行恢復(fù)(必須打開(kāi)日志,確定開(kāi)始恢復(fù)日志位置和出錯(cuò)前日志的位置)
     (A):

mysqlbinlog log.00001 >F:log.sql

-- 把二進(jìn)制文件log.00001導(dǎo)入文件日志log.sql中
     (B):打開(kāi)log.sql日志文件,確定恢復(fù)點(diǎn)
     (C):

mysqlbinlog --start-position="5230766" --stop-position="5231104" PC-201304011235-bin.000001 | mysql -uroot -p111111

備注:必須加上|后面mysql信息,重新執(zhí)行這段點(diǎn)之間日志

相關(guān)文章

  • MySQL定時(shí)任務(wù)EVENT事件的使用方法

    MySQL定時(shí)任務(wù)EVENT事件的使用方法

    本文主要介紹了MySQL定時(shí)任務(wù)EVENT事件的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)

    mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)

    這篇文章主要介紹了mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • mysql 字段as詳解及實(shí)例代碼

    mysql 字段as詳解及實(shí)例代碼

    這篇文章主要介紹了mysql 字段as詳解,并附實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • MySQL與PHP的基礎(chǔ)與應(yīng)用專題之?dāng)?shù)據(jù)查詢

    MySQL與PHP的基礎(chǔ)與應(yīng)用專題之?dāng)?shù)據(jù)查詢

    MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL?AB?公司開(kāi)發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL?是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從數(shù)據(jù)的查詢開(kāi)始
    2022-02-02
  • MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別

    MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別

    這篇文章主要介紹了MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • mysql查詢獲得兩個(gè)時(shí)間的時(shí)間差方式

    mysql查詢獲得兩個(gè)時(shí)間的時(shí)間差方式

    這篇文章主要介紹了mysql查詢獲得兩個(gè)時(shí)間的時(shí)間差方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • MySQL8.0中的my.ini文件位置說(shuō)明

    MySQL8.0中的my.ini文件位置說(shuō)明

    這篇文章主要介紹了MySQL8.0中的my.ini文件位置說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL數(shù)據(jù)庫(kù)存入Date時(shí)天數(shù)會(huì)少一天的問(wèn)題及解決

    MySQL數(shù)據(jù)庫(kù)存入Date時(shí)天數(shù)會(huì)少一天的問(wèn)題及解決

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)存入Date時(shí)天數(shù)會(huì)少一天的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 重置mysql的root密碼最簡(jiǎn)單的方法

    重置mysql的root密碼最簡(jiǎn)單的方法

    在本篇文章里小編給大家整理的是關(guān)于重置mysql的root密碼最簡(jiǎn)單的方法,需要的朋友們參考下。
    2020-03-03
  • 詳解mysql解壓縮版安裝步驟

    詳解mysql解壓縮版安裝步驟

    這篇文章主要介紹了mysql解壓縮版安裝步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論