因为要写一个订阅MySQL binlog的基础服务,所以需要配置一套MySQL主从,做开发环境,在这里做个笔记。
MySQL版本5.7.17
主库配置
[mysqld]
log_bin = /path/mysql/master/data/log_bin
basedir = /usr/local/Cellar/mysql/5.7.17
datadir = /path/mysql/master/data
port = 3306
server_id = 13306
socket = mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
从库配置
[mysqld]
log_bin = /path/mysql/slave/data/log_bin
relay_log = /path/mysql/slave/data/relay_log
relay-log-index = /path/mysql/slave/data/relay-log-index
relay-log-info-file = /path/mysql/slave/data/relay-relay-log.info
replicate-do-db = test
log_slave_updates = 1
basedir = /usr/local/Cellar/mysql/5.7.17
datadir = /path/mysql/slave/data
port = 3307
server_id = 13307
socket = mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
初始化主MySQL,user是root,密码为空,slave初始化改下datadir参数
mysqld --initialize-insecure --user=root --datadir=/path/mysql/master/data
启动主MySQL,启动slave请改下defaults-file参数
mysqld --defaults-file=/path/mysql/master/etc/my.cnf
在主库创建一个同步账户
GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'pwd';
FLUSH PRIVILEGES;
在从库开启同步
CHANGE MASTER TO MASTER_HOST='127.0.0.1',MASTER_PORT= 3306, MASTER_LOG_FILE='log_bin.000001', MASTER_LOG_POS=1, MASTER_BIND='', MASTER_USER='repl',MASTER_PASSWORD='pwd';
START SLAVE;
关闭主MySQL,关闭slave,请修改相应的地址和端口
mysqladmin -uroot -p -h 127.0.0.1 -P 3306 shutdown
完成。
更多架构、PHP、GO相关踩坑实践技巧请关注我的公众号:PHP架构师