1.bin-log 是什么?
bin-log是MySQL非常重要的日志。它記錄了所有的DDL和DML(除了數(shù)據(jù)查詢(xún)語(yǔ)句)語(yǔ)句,以事件形式記錄,還包含語(yǔ)句所執(zhí)行的消耗的時(shí)間,MySQL的二進(jìn)制日志是事務(wù)安全型的。
它的主要用途
一.數(shù)據(jù)恢復(fù)
二.主從復(fù)制
成都創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供龍沙網(wǎng)站建設(shè)、龍沙做網(wǎng)站、龍沙網(wǎng)站設(shè)計(jì)、龍沙網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、龍沙企業(yè)網(wǎng)站模板建站服務(wù),十載龍沙做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
2.開(kāi)啟bin-log
vi /etc/mysql/my.cnf
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
3.驗(yàn)證是否開(kāi)啟
mysql>show variables like "%log%";
查看log_bin 是否為ON
目錄查看
/var/log/mysql> ls
4.與bin-log有關(guān)的命令 | 命令 | 解釋 |
---|---|---|
flush logs | 重新起一個(gè)bin-log日志 | |
show master status | 查看最新的bin-log日志 | |
reset master | 清空所有的bin-log日志 |
5.查看bin-log日志
/var/log/mysql> mysqlbinlog mysql-bin.000251
6.關(guān)于bin-log的數(shù)據(jù)恢復(fù)的實(shí)驗(yàn)一@創(chuàng)建表
br/>一@創(chuàng)建表
flush logs;
mysql> create table t2(a1 int(10) not null default 0)engine=innodb default charset=utf8;二@插入數(shù)據(jù)
br/>二@插入數(shù)據(jù)
insert into t2 values (1), (2);三@備份數(shù)據(jù)
br/>三@備份數(shù)據(jù)
/tmp/t2_bak.sql
zc@ubuntu:~$ ls -la /tmp/t2_bak.sql四@備份后添加了三條數(shù)據(jù)
br/>四@備份后添加了三條數(shù)據(jù)
insert into t2 values (3);
mysql> insert into t2 values (4);
mysql> insert into t2 values (5);五@表被刪除
br/>五@表被刪除
drop table t2;
六@用已備份的 t2_bak.sql 來(lái)恢復(fù)數(shù)據(jù) (前段部分)
zc@ubuntu:~$ mysql -uroot -p**** test < /tmp/t2_bak.sql
mysql> show tables;七@備份之后的三條數(shù)據(jù)用bin-log恢復(fù),找出位置(后段部分)
br/>七@備份之后的三條數(shù)據(jù)用bin-log恢復(fù),找出位置(后段部分)
八@開(kāi)始恢復(fù)
zc@ubuntu:/var/log/mysql$ mysqlbinlog --stop-position="653" mysql-bin.000257 | mysql -uroot -p**** test九@驗(yàn)證數(shù)據(jù)
br/>九@驗(yàn)證數(shù)據(jù)
7.附錄A
8.附錄B
Mysql導(dǎo)出表結(jié)構(gòu)及表數(shù)據(jù) mysqldump用法
命令行下具體用法如下: mysqldump -u用戶(hù)名 -p密碼 -d 數(shù)據(jù)庫(kù)名 表名 腳本名;
1、導(dǎo)出數(shù)據(jù)庫(kù)為dbname的表結(jié)構(gòu)(其中用戶(hù)名為root,密碼為dbpasswd,生成的腳本名為db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、導(dǎo)出數(shù)據(jù)庫(kù)為dbname某張表(test)結(jié)構(gòu)
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、導(dǎo)出數(shù)據(jù)庫(kù)為dbname所有表結(jié)構(gòu)及表數(shù)據(jù)(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4、導(dǎo)出數(shù)據(jù)庫(kù)為dbname某張表(test)結(jié)構(gòu)及表數(shù)據(jù)(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;