由于要写一个订阅MySQL binlog的基础服务,因此须要配置一套MySQL主从,作开发环境,在这里作个笔记。mysql
MySQL版本5.7.17sql
主库配置架构
[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
从库配置socket
[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参数code
mysqld --initialize-insecure --user=root --datadir=/path/mysql/master/data
启动主MySQL,启动slave请改下defaults-file参数server
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,请修改相应的地址和端口it
mysqladmin -uroot -p -h 127.0.0.1 -P 3306 shutdown
完成。ast
更多架构、PHP、GO相关踩坑实践技巧请关注个人公众号:PHP架构师