日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql hex2bin_mysqlbinlog指令

發布時間:2025/3/17 数据库 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql hex2bin_mysqlbinlog指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

binlog是通過記錄二進制文件方式來備份數據,然后在從二進制文件將數據恢復到某一時段或某一操作點。

1、使用mysqlbinlog工具來恢復

Mysqlbinlog日志如何開啟?

在my.cnf這個文件中加一行。

#vi /etc/my.cnf

[mysqld]

log-bin=mysqlbin-log #添加這一行就可以了,=號后面自己定義日志文件名,默認該文件是存儲在datadir中。

mysqlbinlog用法詳細說明

服務器生成的二進制日志文件寫成二進制格式。要想檢查這些文本格式的文件,應使用mysqlbinlog實用工具。

#mysqlbinlog [options] log-files...

例如,要想顯示二進制日志mysql-bin.407的內容,使用下面的命令:

#mysqlbinlog mysql-bin.407

輸出包括在mysql-bin.407中包含的所有語句,以及其它信息例如每個語句花費的時間、客戶發出的線程ID、發出線程時的時間戳等等。

參數說明(mysql5以上版本參數添加了很多):

mysqlbinlog支持下面的選項:

---help,-???? 顯示幫助消息并退出。

---database=db_name,-d db_name???? 只列出該數據庫的條目(只用本地日志)。

--force-read,-f???? 使用該選項,如果mysqlbinlog讀它不能識別的二進制日志事件,它會打印警告,忽略該事件并繼續。沒有該選項,如果mysqlbinlog讀到此類事件則停止。

--hexdump,-H??? 在注釋中顯示日志的十六進制轉儲。該輸出可以幫助復制過程中的調試。在MySQL 5.1.2中添加了該選項。

--host=host_name,-h host_name??? 獲取給定主機上的MySQL服務器的二進制日志。

--local-load=path,-l pat??? 為指定目錄中的LOAD DATA INFILE預處理本地臨時文件。

--offset=N,-o N???? 跳過前N個條目。

--password[=password],-p[password]??? 當連接服務器時使用的密碼。如果使用短選項形式(-p),選項和 密碼之間不能有空格。如果在命令行中--password或-p選項后面沒有 密碼值,則提示輸入一個密碼。

--port=port_num,-P port_num??? 用于連接遠程服務器的TCP/IP端口號。

--position=N,-j N??? 不贊成使用,應使用--start-position。

--protocol={TCP | SOCKET | PIPE | -position??? 使用的連接協議。

--read-from-remote-server,-R??? 從MySQL服務器讀二進制日志。如果未給出該選項,任何連接參數選項將被忽略。這些選項是--host、--password、--port、--protocol、--socket和--user。

--result-file=name, -r name??? 將輸出指向給定的文件。

--short-form,-s??? 只顯示日志中包含的語句,不顯示其它信息。

--socket=path,-S path??? 用于連接的套接字文件。

--start-datetime=datetime??? 從二進制日志中第1個日期時間等于或晚于datetime參量的事件開始讀取。datetime值相對于運行mysqlbinlog的機器上的本地時區。該值格式應符合DATETIME或TIMESTAMP數據類型。

--stop-datetime=datetime??? 從二進制日志中第1個日期時間等于或晚于datetime參量的事件起停止讀。關于datetime值的描述參見--start-datetime選項。該選項可以幫助及時恢復。

--start-position=N??? 從二進制日志中第1個位置等于N參量時的事件開始讀。

--stop-position=N??? 從二進制日志中第1個位置等于和大于N參量時的事件起停止讀。

--to-last-logs,-t??? 在MySQL服務器中請求的二進制日志的結尾處不停止,而是繼續打印直到最后一個二進制日志的結尾。如果將輸出發送給同一臺MySQL服務器,會導致無限循環。該選項要求--read-from-remote-server。

--disable-logs-bin,-D??? 禁用二進制日志。如果使用--to-last-logs選項將輸出發送給同一臺MySQL服務器,可以避免無限循環。該選項在崩潰恢復時也很有用,可以避免復制已經記錄的語句。注釋:該選項要求有SUPER權限。

--user=user_name,-u user_name??? 連接遠程服務器時使用的MySQL用戶名。

--version,-V?? 顯示版本信息并退出。

還可以使用--var_name=value選項設置下面的變量:

Variables (--variable-name=value)

and boolean options {FALSE|TRUE}? Value (after reading options)

--------------------------------- -----------------------------

base64-output???????????????????? (No default value)

character-sets-dir??????????????? (No default value)

database????????????????????????? (No default value)

debug-check?????????????????????? FALSE

debug-info??????????????????????? FALSE

disable-log-bin?????????????????? FALSE

force-if-open???????????????????? TRUE

force-read??????????????????????? FALSE

hexdump?????????????????????????? FALSE

host????????????????????????????? (No default value)

local-load??????????????????????? (No default value)

offset??????????????????????????? 0

port????????????????????????????? 3306

position????????????????????????? 4

read-from-remote-server?????????? FALSE

server-id???????????????????????? 0

set-charset?????????????????????? (No default value)

short-form??????????????????????? FALSE

socket??????????????????????????? /tmp/mysql.sock

start-datetime??????????????????? (No default value)

start-position??????????????????? 4

stop-datetime???????????????????? (No default value)

stop-position???????????????????? 18446744073709551615

to-last-log?????????????????????? FALSE

user????????????????????????????? (No default value)

open_files_limit????????????????? 64

例子:

查看日志

#mysqlbinlog mysql-bin.407

根據position從20-2000查找resource庫相關記錄,并輸出到指定文件:

#mysqlbinlog --start-position="20" --stop-position="2000" --database=resource mysql-bin.407 --result-file=result.sql

查找并導入數據庫:

#mysqlbinlog --start-position="20" --stop-position="2000" --database=resource mysql-bin.407 | mysql -u root

還可以根據時間來查找記錄:

#mysqlbinlog --start-datetime="2012-09-20 8:10:00" --stop-datetim="2012-09-25 07:30:00" mysql-bin.407 --result-file=result.sql

……

2、Mysqlbinlog導出并轉換編碼導入

原中文編碼為gb2312,轉換utf8編碼,并插入

(1)從position=387426452開始導出resource數據庫信息

#/usr/local/mysql/bin/mysqlbinlog --position=387426452 --set-charset=utf8 --database=resource mysql-bin.407 --result-file=result_resource.sql

(2)轉換編碼為utf8

#iconv -t utf-8 -f gb2312 -c result_resource.sql > new_result_resource.sql_utf8.sql

(3)導入數據庫

在mysql會話中需要set names utf8;

mysql> set names utf8;

mysql> source /tmp/new_result_resource.sql_utf8.sql

總結

以上是生活随笔為你收集整理的mysql hex2bin_mysqlbinlog指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。