從概述中我可以看到my.ini配置信息的log-bin沒有指定文件擴(kuò)展名,這是因?yàn)榧词鼓阒付ㄉ蠑U(kuò)展名它也不使用。當(dāng)mysql創(chuàng)建二進(jìn)制日志文件時(shí),首先創(chuàng)建一個(gè)以“mysql_log_bin”為名稱,以“.index”為后綴的文件;再創(chuàng)建一個(gè)以“mysql_log_bin”為名稱,以“.000001”為后綴的文件。當(dāng)mysql服務(wù)重新啟動(dòng)一次以“.000001”為后綴的文件會(huì)增加一個(gè),并且后綴名加1遞增;如果日志長(zhǎng)度超過了max_binlog_size的上限(默認(rèn)是1G)也會(huì)創(chuàng)建一個(gè)新的日志文件;使用flush logs(mysql命令符)或者執(zhí)行mysqladmin –u –p flush-logs(windows命令提示符)也會(huì)創(chuàng)建一個(gè)新的日志文件。
成都創(chuàng)新互聯(lián)公司專注于惠東網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供惠東營(yíng)銷型網(wǎng)站建設(shè),惠東網(wǎng)站制作、惠東網(wǎng)頁(yè)設(shè)計(jì)、惠東網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開發(fā)服務(wù),打造惠東網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供惠東網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
既然寫入的都是MySQL二進(jìn)制數(shù)據(jù),用記事本打開文件是看不到正常數(shù)據(jù)的,那怎么查看呢?
使用BIN目錄下mysqlbinlog命令,如:
Binmysqlbinlog d:/mysql_log/mysql_bin.000001
Binmysqlbinlog d:/mysql_log/mysql_bin.000002
Binmysqlbinlog d:/mysql_log/mysql_bin.000003
Binmysqlbinlog d:/mysql_log/mysql_bin.000004
Binmysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL語句也可查看mysql創(chuàng)建的二進(jìn)制的文件目錄:
Mysql show master logs; 查看當(dāng)前二進(jìn)制文件狀態(tài):
mysql show master status;
linux系統(tǒng)進(jìn)入mysql數(shù)據(jù)庫(kù)的方法: 連接MYSQL: 格式: mysql -h主機(jī)地址 -u用戶名 -p用戶密碼 1、連接到本機(jī)上的MYSQL。 首先在打開DOS窗口,然后進(jìn)入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車后提示你輸密碼,如果剛安裝好MYSQL,超級(jí)...
開啟binary log功能
需要修改mysql的配置文件,本篇的實(shí)驗(yàn)環(huán)境是win7,配置文件為mysql安裝目錄\MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可
?
1
2
3
4
5
6
7
8
9
eg:
[mysqld]
......
log_bin = mysql_bin
......
log_bin是生成的bin-log的文件名,后綴則是6位數(shù)字的編碼,從000001開始,按照上面的配置,生成的文件則為:
mysql_bin.000001
mysql_bin.000002
mysql select * from an_bit;
+——+
| id |
+——+
|
|
| |
+——+
這樣是不對(duì)的,看不到東西
mysql select id+0 from an_bit;
+——+
| id+0 |
+——+
| 11 |
| 3 |
+——+
這是正確的,可以看到十進(jìn)制的值。
mysql select bin(id+0) from an_bit;
+———–+
| bin(id+0) |
+———–+
| 1011 |
| 11 |
+———–+
這是二進(jìn)制的值
mysql select oct(id+0) from an_bit;
+———–+
| oct(id+0) |
+———–+
| 13 |
| 3 |
+———–+
這是八進(jìn)制的值
mysql select hex(id+0) from an_bit;
+———–+
| hex(id+0) |
+———–+
| B |
| 3 |
+———–+
這是十六進(jìn)制的值
MySQL的日志文件模塊啟動(dòng)后才會(huì)有日志記錄。
開啟日志服務(wù):
在MY.INI里,MYSQLD項(xiàng)下添加log-bin=mysql。
如果只對(duì)某個(gè)庫(kù)進(jìn)行日志文件記錄,那么再添加binlog-do-db=test,這樣就只記錄test數(shù)據(jù)庫(kù)的日志,而放棄其他的。
添加完后,重新啟動(dòng)MYSQL的服務(wù),日志文件開始工作了.
查看是否啟用了日志命令:mysqlshow variables like 'log_bin';
查看當(dāng)前的日志命令:mysql show master status;
看二進(jìn)制日志文件用mysqlbinlog命令:shellmysqlbinlog mail-bin.000001
以PHP腳本為例。PHP一般只支持小于2M的文件,假如要存取大于2M的文件,那就要進(jìn)系統(tǒng)方面的設(shè)置了。具體操作如下:
首先創(chuàng)建測(cè)試表testtable
CREATE?TABLE?testtable?(?id?INT(5)?NOT?NULL?AUTO_INCREMENT?PRIMARY?KEY,filename?CHAR(255),data?LONGBLOB?);
將文件存入表中使用如下PHP代碼
?php
mysql_connect(?"localhost",?"root",?"password");?//連接數(shù)據(jù)庫(kù)
mysql_select_db(?"database");?//選定數(shù)據(jù)庫(kù)
$filename=""?//這里填入二進(jìn)制文件名
$data?=?addslashes(fread(fopen($filename,?"r"),?filesize($filename)));//打開文件并規(guī)范化數(shù)據(jù)存入變量$data中
$result=mysql_query(?"INSERT?INTO?testtable?(filename,data)?VALUES?('$filename','$data')");//數(shù)據(jù)插入到數(shù)據(jù)庫(kù)test表中
mysql_close();
?
從表中取回文件,使用如下PHP代碼
?php
if($id)?{
mysql_connect(?"localhost",?"root",?"password");
mysql_select_db(?"database");
$filename=""?//這里填入二進(jìn)制文件名
$query?=?"select?data?from?testtable?where?filename=$filename";
$result?=?mysql_query($query);
$data?=?mysql_result($result,0,?"data");
?