一:综述
默认情况下binary log保存在mysql datadir参数所指定的目录下。我们可能因为磁盘空间,或者说获得更好的io性能等目的,需要修改当前数据库实例的binary log所在位置。本博客给出具体的修改方案。
NOTE:方案适用于Mysql 4.0及以上版本
二:修改方案
1) 创建新的binary log目录
mkdir -p /new/path/binarylog/
2) 停当前数据库实例
mysqladmin -uroot -p -S /tmp/3306.sock shutdown
3) 拷贝所有binlog文件和binlog index文件到新的目录
cp hostname-bin.log* /new/path/binarylog/
cp hostname-bin.index /new/path/binarylog/
4) 修改my.cnf文件
[mysqld]
....
log-bin=/new/path/binarylog/server-name-bin
log-bin-index=/new/path/binarylog/server-name-bin.index
...
5) 修改新路径下hostname-bin.index文件中binlog日志的绝对路径
因为该文件下记录的还是原来binlog的绝对路径(Bug#11745230)
6) 启动数据库实例
mysqld_safe --defaults-file=/etc/my.cnf &
7) 查看binary logs
SHOW BINARY LOGS;
8) 一切正常后,删除原目录下的binlog 和binlog index
参数:How to Relocate the MySQL Binary Logs (Doc ID 1409253.1)