2024-01-27 12:57:22
浏览数 (2)
MySQL 主从同步配置
- 编辑 MySQL 主上的
/etc/my.cnf
,log-bin=imooc_mysql
server-id=1
log-bin
:MySQL 的 bin-log 的名字server-id
: MySQL 实例中全局唯一,并且大于 0。
- 编辑 MySQL 从上的
/etc/my.cnf
,server-id=2
server-id
: MySQL 实例中全局唯一,并且大于 0。与主上的 server-id
区分
开。
- 在
MySQL
主上创建用于备份账号
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
- MySQL 主上加锁,阻止所有的写入操作
mysql> FLUSH TABLES WITH READ LOCK;
- MySQL 主上,查看 bin-log 的文件名和位置
mysql > SHOW MASTER STATUS;
- MySQL 主上 dump 所有数据,
mysqldump --all-databases --master-data > dbdump.db -uroot -p
- MySQL 主进行解锁,解锁后,主上可以写入数据
- MySQL 从上导入之前 dump 的数据
- MySQL 从上配置主从连接信息
mysql> CHANGE MASTER TO
代码语言:javascript
复制-> MASTER_HOST='master_host_name',
-> MASTER_PORT=port_num
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
- master_host_name : MySQL 主的地址
- port_num : MySQL 主的端口(数字型)
- replication_user_name : 备份账户的用户名
- replication_password : 备份账户的密码
- recorded_log_file_name :bin-log 的文件名
- recorded_log_position : bin-log 的位置(数字型)
- bin-log 的文件名和位置 是 步骤 5 中的 show master status 得到的。
- MySQL 从上开启同步:
mysql> START SLAVE;
,查看 MySQL 从的状态:show slave status;