程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql5.6.12切換binlog二進制日志路徑

mysql5.6.12切換binlog二進制日志路徑

編輯:MySQL綜合教程

mysql5.6.12切換binlog二進制日志路徑


前言:
有一個mysql學生說他們因為binlog產生太大了,需要把日志路徑放到另外的磁盤上面去,問我有啥時機的操作方案,share弄了一個mysql的binlog的日志路徑切換的例子給他。正好今天有空,就拿mysql5.6.12來做個實例,給大家演示一下。

1,查看binlog地址

[root@mysql5612 ~]# more /usr/local/mysql/my.cnf |grep log-bin
log-bin =/home/data/mysql/binlog/mysql-bin.log
[root@mysql5612 ~]# 

2,驗證binlog的正常使用

[root@mysql5612 binlog]# pwd
/home/data/mysql/binlog
[root@mysql5612 binlog]# mysql
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 390217
Server version: 5.6.12-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create table z2 select 2 as a;
ERROR 1046 (3D000): No database selected
mysql> create table test.z2 select 2 as a;
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> exit
Bye
[root@mysql5612 binlog]# ll
總用量 6240204
-rw-rw----. 1 mysql mysql 1073742187 6月   8 2015 mysql-bin.000048
-rw-rw----. 1 mysql mysql 1073741968 6月   8 2015 mysql-bin.000049
-rw-rw----. 1 mysql mysql 1073742063 6月   8 2015 mysql-bin.000050
-rw-rw----. 1 mysql mysql 1073741957 6月   8 2015 mysql-bin.000051
-rw-rw----. 1 mysql mysql 1073742142 6月   8 2015 mysql-bin.000052
-rw-rw----. 1 mysql mysql 1021194604 12月 10 20:44 mysql-bin.000053
-rw-rw----. 1 mysql mysql        615 6月   8 2015 mysql-bin.index
[root@mysql5612 binlog]# 

看到binlog日志更新了,在20:44時間處,binlog日志mysql-bin.000053有更新記錄。然後沖洗mysql服務,看看binlog是否會重新生成:

[root@mysql5612 binlog]# service mysqld56 restart
Shutting down MySQL.................                       [確定]
Starting MySQL.....                                        [確定]
[root@mysql5612 binlog]# 
[root@mysql5612 binlog]# ll
總用量 997276
-rw-rw----. 1 mysql mysql 1021194627 12月 10 20:46 mysql-bin.000053
-rw-rw----. 1 mysql mysql        399 12月 10 20:47 mysql-bin.000054
-rw-rw----. 1 mysql mysql         82 12月 10 20:46 mysql-bin.index
[root@mysql5612 binlog]# 

果然,有新的mysql-bin.000054日志生成了。

原csdn的blog地址:http://blog.csdn.net/mchdba/article/details/50254903,未經過原作者黃杉(mchdba)允許,不得轉載


3,去修改binlog日志路徑

建立新的binlog日志路徑:

[root@mysql5612 binlog]# mkdir -p /home/data/mysql/binlog_new
[root@mysql5612 binlog]# 
[root@mysql5612 binlog]# chown -R mysql.mysql /home/data/mysql/binlog_new
[root@mysql5612 binlog]# 

然後修改my.cnf,設置新的log-bin路徑:

[root@mysql5612 binlog]# vim /usr/local/mysql/my.cnf
log-bin =/home/data/mysql/binlog_new/mysql-bin

查看配置文件的binlog路徑:

[root@mysql5612 mysql]# more /usr/local/mysql/my.cnf |grep log-bin
log-bin =/home/data/mysql/binlog_new/mysql-bin
[root@mysql5612 mysql]# 

4,重啟mysql服務

[root@mysql5612 mysql]# service mysqld56 restart
Shutting down MySQL..                                      [確定]
Starting MySQL.....                                        [確定]
[root@mysql5612 mysql]# 

5,驗證新的binlog

查看生成的日志,有新的如下所示:

[root@mysql5612 mysql]# cd /home/data/mysql/binlog_new/
[root@mysql5612 binlog_new]# ll
總用量 12
-rw-rw----. 1 mysql mysql 143 12月 10 21:09 mysql-bin.000001
-rw-rw----. 1 mysql mysql 399 12月 10 21:10 mysql-bin.000002
-rw-rw----. 1 mysql mysql  90 12月 10 21:10 mysql-bin.index
[root@mysql5612 binlog_new]# 

建立新表,錄入數據:

[root@mysql5612 binlog_new]# mysql
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.12-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> create table z3 select 3 as a;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into z3 select 4;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into z3 select 5;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from z4;
ERROR 1146 (42S02): Table 'test.z4' doesn't exist
mysql> select * from z3;
+---+
| a |
+---+
| 3 |
| 4 |
| 5 |
+---+
3 rows in set (0.00 sec)

mysql> 

再去查看binlog,mysql-bin.000002從399增大到1085,表示有新的二進制日志產生了:

[root@mysql5612 binlog_new]# ll
總用量 12
-rw-rw----. 1 mysql mysql  143 12月 10 21:09 mysql-bin.000001
-rw-rw----. 1 mysql mysql 1085 12月 10 21:11 mysql-bin.000002
-rw-rw----. 1 mysql mysql   90 12月 10 21:10 mysql-bin.index
[root@mysql5612 binlog_new]# 

再使用mysqlbinlog工具去看下產生的新日志是否剛在建立的z3表記錄,看到有所有關於test庫建立的z3表的操作記錄,如下所示:

[root@mysql5612 binlog_new]# /usr/local/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v  mysql-bin.000002
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#151210 21:10:05 server id 72  end_log_pos 120 CRC32 0xa723f142     Start: binlog v 4, server v 5.6.12-log created 151210 21:10:05 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 120
#151210 21:10:07 server id 72  end_log_pos 206 CRC32 0x447f5733     Query   thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1449753007/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=45/*!*/;
SET @@session.time_zone='SYSTEM'/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 206
#151210 21:10:07 server id 72  end_log_pos 274 CRC32 0xde0b7250     Table_map: `access_log`.`access_log` mapped to number 70
# at 274
#151210 21:10:07 server id 72  end_log_pos 368 CRC32 0xa03a9659     Write_rows: table id 70 flags: STMT_END_F
### INSERT INTO `access_log`.`access_log`
### SET
###   @1=10534
###   @2=1
###   @3=1449753007
###   @4='[email protected]'
###   @5='[email protected].%'
# at 368
#151210 21:10:07 server id 72  end_log_pos 399 CRC32 0x3ccf3c72     Xid = 3
COMMIT/*!*/;
# at 399
#151210 21:10:58 server id 72  end_log_pos 471 CRC32 0xef9ce950     Query   thread_id=2 exec_time=0 error_code=0
SET TIMESTAMP=1449753058/*!*/;
BEGIN
/*!*/;
# at 471
#151210 21:10:58 server id 72  end_log_pos 593 CRC32 0x92e79f36     Query   thread_id=2 exec_time=0 error_code=0
use `test`/*!*/;
SET TIMESTAMP=1449753058/*!*/;
CREATE TABLE `z3` (
  `a` int(1) NOT NULL DEFAULT '0'
)
/*!*/;
# at 593
#151210 21:10:58 server id 72  end_log_pos 638 CRC32 0x65f13b58     Table_map: `test`.`z3` mapped to number 107
# at 638
#151210 21:10:58 server id 72  end_log_pos 678 CRC32 0xaa7fb7e1     Write_rows: table id 107 flags: STMT_END_F
### INSERT INTO `test`.`z3`
### SET
###   @1=3
# at 678
#151210 21:10:58 server id 72  end_log_pos 709 CRC32 0x218a319c     Xid = 60
COMMIT/*!*/;
# at 709
#151210 21:11:04 server id 72  end_log_pos 781 CRC32 0x9662b95e     Query   thread_id=2 exec_time=0 error_code=0
SET TIMESTAMP=1449753064/*!*/;
BEGIN
/*!*/;
# at 781
#151210 21:11:04 server id 72  end_log_pos 826 CRC32 0x46f32822     Table_map: `test`.`z3` mapped to number 107
# at 826
#151210 21:11:04 server id 72  end_log_pos 866 CRC32 0xafb27f1e     Write_rows: table id 107 flags: STMT_END_F
### INSERT INTO `test`.`z3`
### SET
###   @1=4
# at 866
#151210 21:11:04 server id 72  end_log_pos 897 CRC32 0x351c7718     Xid = 63
COMMIT/*!*/;
# at 897
#151210 21:11:10 server id 72  end_log_pos 969 CRC32 0x76931e05     Query   thread_id=2 exec_time=0 error_code=0
SET TIMESTAMP=1449753070/*!*/;
BEGIN
/*!*/;
# at 969
#151210 21:11:10 server id 72  end_log_pos 1014 CRC32 0xe7e8947b    Table_map: `test`.`z3` mapped to number 107
# at 1014
#151210 21:11:10 server id 72  end_log_pos 1054 CRC32 0xbdafa096    Write_rows: table id 107 flags: STMT_END_F
### INSERT INTO `test`.`z3`
### SET
###   @1=5
# at 1054
#151210 21:11:10 server id 72  end_log_pos 1085 CRC32 0x831695c0    Xid = 64
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[root@mysql5612 binlog_new]# 

這表明我們的binlog路徑切換操作成功完成了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved