mysql-5.7.34-linux-glibc2.12-x86_64.tar 数据库版本!
mysql 下载官网https://dev.mysql.com/downloads/mysql/
主服务器的ip:172.16.13.10
从服务器的ip:172.16.13.244
1.在主库上进行操作
mysql -u root -p
代表建立一个slave用户,密码为123456,并且,这个主库能允许从库(172.16.13.244)的ip以slave用户来登陆
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'172.16.13.244' IDENTIFIED BY '密码';
2、配置主库的my.cnf文件
server-id=1
log_bin=mysql-bin
#binlog_format=mixed
binlog_format=row
binlog-ignore-db=mysql #不同步的数据库
expire_logs_days=30 #自动清理30天前的log文件,可根据需要修改
这里的server-id在数据库配置中必须是唯一的,重启主库的mysql
重新启动mysql
service mysqld restart
3、在主库中查看 status
show master status;
以上就是主库的配置;
从库配置如下
mysql -uroot -p
这里的用户名和密码 是你在主库创建的账户名和密码
CHANGE MASTER TO MASTER_HOST='172.16.13.10',MASTER_USER='用户名',MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=442;
docker容器中配置
change master to master_host='172.16.13.10',master_port=3308,master_user='用户名',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=900;
MASTER_LOG_FILE ,MASTER_LOG_POS 注意是从主库拿到的
MASTER_USER,MASTER_PASSWORD 是你配置主库的用户名和密码
server-id=7
log_bin=mysql-bin
binlog_format=row
binlog-ignore-db=mysql
binlog-do-db=learning_system
expire_logs_days=30
skip-name-resolve
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=8192
wait_timeout=315360000
interactive_timeout=315360000
slave-skip-errors = 1007,1008,1053,1062,1213,1158,1159
relay_log_recovery = 1
这个配置是在网上找的,详细的可以自己调整!
启动主从复制,在从库执行
start slave;
在从库中查看配置是否成功
show slave status\G
两个都为YES表示成功!
最后刷新一下
flush privileges;