前言:今日早上在写博客时,思索一再,没有更好的条理,就想起了曾经在操作mysql的时分,常常要用的一些指令,下面就来简略介绍一下

备份数据:
Java代码 保藏代码
C:\Users\xxxx>mysqldump -uxxx -pxxx backup > backup.sql

 

 
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 
最终:这些简略的,常用的指令,以及运用方法都是十分值得总结的。