docker映射mysql的my.cnf文件
#mysql默认配置文件是从/etc/my.cnf加载的
#这个命令用于查看mysql配置文件加载顺序, mysql只会从第一个位置找配置文件
mysql --help|grep 'my.cnf'
#用于查看是否配置过用户指定的配置文件
ps aux|grep mysql|grep 'my.cnf'
#所以我们要映射/etc/my.cnf的配置文件
docker run --name mariadb -v /docker/mysql/my.cnf:/etc/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD=2650393056 -d mariadb
主库
[mysqld]
#开启mysql日志
log-bin=mysql-bin
#唯一标识
server-id=1
#不同步哪个库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#只同步哪个库
binlog-do-db=test
#查看主库状态
SHOW MASTER STATUS;
#刷新权限
FLUSH PRIVILEGES;
#查看日志是否开启
show variables like '%log_bin%';
从服务器
[mysqld]
#局域网唯一标识
server-id=2
#不同步哪个库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#只同步哪个库
binlog-do-db=test
#填写主库的信息
#MASTER_LOG_POS要和主库状态的Position字段一致
CHANGE MASTER TO
MASTER_HOST='192.168.238.101',
MASTER_USER='root',
MASTER_PASSWORD='2650393056',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=328;
#启动slave同步进程
start slave;
#查看slave状态
#Slave_IO_Running和Slave_SQL_Running都要是YES
show slave status
#刷新权限
FLUSH PRIVILEGES;
停止从库同步主库数据
#停止从库
stop slave;
#清除从库的同步复制信息、包括连接信息和二进制文件名、位置
reset slave all;
#停止后show slave status将不会有输出