前言:今日早上在寫號碼大全博客時,思索一再,沒有更好的條理關鍵詞挖掘工具,就想起了曾經在操作mysql的時分,常常要用的一些指令,下面就來簡略介紹一下
備份數據:
Java代碼 保藏代碼
C:\Users\xxxx>mysqldump -uxxx -pxxx backup > backup.sql
臨沂批發網 http://www.shoudashou.com
國醫一號 http://www.tdhzp.com/
C:\Users\xxxx>
mysqldump :mysql用於存儲數據庫的應用程序,會發生一個sql文件,如上文的backup.sql,其間包含了數據庫的create、insert into等語句。
隨後咱們運用dir指令檢查一下C:\Users\xxxx>目錄的文件列表,能夠看到
Java代碼 保藏代碼
2014/08/23 10:15 1,271 backup.sql
康復數據:
Java代碼 保藏代碼
mysql> use backup;
Database changed
mysql> source C:\Users\xxxx\backup.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
運用mysql指令進入到mysql指令行,運用use backup切換數據庫,然後運用source指令進行數據的康復。
以上source指令在處理mysql的很多數據康復時,速度仍是對比可觀的。
可是咱們在實在的項目傍邊,常常需求用到二進制日誌,那麼下面咱們來做一個二進制的日誌備份操作
首要:咱們檢查一下mysql二進制日誌是不是敞開
Sql代碼 保藏代碼
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.14 sec)
第二步:咱們敞開二進制日誌(在Windows的mysql安裝目錄中的my.ini文件中添加以下內容,保證你的f盤有mysqlbin目錄)
Java代碼 保藏代碼
# add log-bin
log-bin=f:/mysqlbin/binlog.log
# set the database for test
binlog-do-db=backup
第三步:咱們重啓一下mysql
Sql代碼 保藏代碼
C:\Users\xxxx>net stop mysql
MySQL 效勞正在中止.
MySQL 效勞已成功中止。
C:\Users\xxxx>net start mysql
MySQL 效勞正在發動 .
MySQL 效勞現已發動成功。
第四步:再次檢查log_bin是不是敞開
Sql代碼 保藏代碼
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
第五步:對backup數據庫進行一下操作,假設現已存在
Sql代碼 保藏代碼
mysql> show columns from binlog;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.08 sec)
mysql>
咱們刺進一條數據
Sql代碼 保藏代碼
mysql> insert into binlog values (2);
Query OK, 1 row affected (0.01 sec)
mysql> select * from binlog;
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
mysql>
第六步:咱們檢查一下二進制日誌目錄
Sql代碼 保藏代碼
F:\mysqlbin>dir
驅動器 F 中的卷是 F:
卷的序列號是 000C-A0EB
F:\mysqlbin 的目錄
2014/08/23 11:02 .
2014/08/23 11:02 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:02 107 binlog.000002
2014/08/23 11:02 52 binlog.index
3 個文件 285 字節
2 個目錄 117,389,742,080 可用字節
第七步:咱們再運用mysqlbinlog檢查一下,內容對比多,上下運用了...空過,能夠看到"insert into binlog values (2)"爲咱們剛剛操作的內容
Sql代碼 保藏代碼
F:\mysqlbin>mysqlbinlog binlog.000002
...
use backup/*!*/;
SET TIMESTAMP=1408763281/*!*/;
insert into binlog values (2)
/*!*/;
# at 271
#140823 11:08:01 server id 1 end_log_pos 298 Xid = 9
...
那麼咱們再次回去標題講的二進制日誌康復和備份,備份就如前文所講,那麼就再來說說二進制的康復
第一種:運用source指令,二進制日誌是不能直接通過source指令來康復,那麼咱們需求依照以下過程來進行
第一步:先將二進制日誌轉換成一般sql文件
Java代碼 保藏代碼
F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000001 > binlog1.sql
F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000002 > binlog2.sql
F:\mysqlbin>dir
驅動器 F 中的卷是 F:
卷的序列號是 000C-A0EB
F:\mysqlbin 的目錄
2014/08/23 11:22 .
2014/08/23 11:22 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:08 298 binlog.000002
2014/08/23 11:02 52 binlog.index
2014/08/23 11:22 644 binlog1.sql
2014/08/23 11:22 1,569 binlog2.sql
5 個文件 2,689 字節
2 個目錄 117,389,737,984 可用字節
第二步:新建一個sql文件,裏邊輸入以下內容
Java代碼 保藏代碼
source F:\mysqlbin\binlog1.sql
source F:\mysqlbin\binlog2.sql
第三步:導入以上的sql文件
Java代碼 保藏代碼
mysql> source C:\Users\xxx\backup.sql
Query OK, 0 rows affected (0.00 sec)
第二種方法,運用mysqlbinlog
Java代碼 保藏代碼
F:\mysqlbin>mysqlbinlog binlog.000001 | mysql -uroot -proot
F:\mysqlbin>mysqlbinlog binlog.000002 | mysql -uroot -proot
最終:這些簡略的,常用的指令,以及運用方法都是十分值得總結的。