文章目录[隐藏]
最近又添加了几台服务器玩玩,现在有两个主机都在有数据库就想着能不能弄一个主从复制来作为数据的备份,这个数据有多重要就不需要我说了吧!
主节点配置
主机上的操作
- 主库在数据库配置文件添加如下,开启binlog
log-bin
server-id=1
- 重启数据库
-
导出主节点的所有表,并同步到子节点主机上
mysqldump -uroot -p密码 -A > /tmp/out.sql
scp out.sql root@子节点主机IP:/tmp/
数据库里的操作
- 登录数据库
mysql -uroot -p
- 创建同步账号/从节点要用连接导这个账号
CREATE USER '用户'@'从节点IP地址' IDENTIFIED BY '密码';
grant replication slave, replication client on *.* to '用户'@'从节点IP地址';
flush privileges;
- 查看主节点状态,记住其中的
File
和Position
,假设File
为:emperinter.88888888,Position
为:88888888, 从节点数据库配置启动要用。
show master status;
- 数据库用户更改密码
set password for 用户名@从节点IP地址 = password('新密码');
从节点配置
主机上的操作
- 导入数据库
cd /tmp/
mysql -uroot -p < out.sql
- 配置,同主库配置,注意
server-id
和主库应该不是一致的
server-id=2
数据库里的操作
- 登录数据库
mysql -uroot -p
- 配置同步信息,
注意修改为主节点的信息!
change master to master_host='主节点IP',master_user='主节点的用户',master_password='主节点的用户密码',MASTER_LOG_FILE='emperinter.88888888',MASTER_LOG_POS=88888888;
- 启动同步
start slave;
- 查看从节点状态
show slave status\G
- 暂停同步
stop slave;
如何关闭?
从节点 | salve
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> reset slave all;
Query OK, 0 rows affected (0.02 sec)
mysql> show slave status\G
Empty set (0.00 sec)
主节点 | master
mysql> reset master;