MySQL主从同步
一.主库没有数据情况下:
1.主库配置:
/etc/my.cnf
[mysqld]
#Server Id 和 log-bin ,用来做主从复制用
server-id=1
log-bin=/opt/wiki/mysql-5.7.27/log/log-bin
binlog-do-db=xwiki
2.从库配置:
server-id=2
3.从库服务器登陆mysql,
停止slave连接到主库:
stop slave;
连接到主库:
change master to master_host='172.25.218.110', master_port=3306, master_user='xwiki', master_password='xwiki';
开启slave连接到主库:
start slave;
查看slave状态:
show slave status\G;
如果以下值则成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
二.主库已有数据情况下:
1.锁定主库:
flush tables with read lock;
2.主库查看master状态信息:
show master status;
3.主库服务器在/etc/my.cnf 文件中配置mysqldump相关信息:
[mysqldump]
user=xwiki
password=xwiki
socket=/opt/wiki/mysql-5.7.27/mysql.sock
4.使用mysqldump工具生成已有数据的sql文件:
/opt/wiki/mysql-5.7.27/mysqldump xwiki >backup.sql
5.sql文件copy到从库服务器
6.从库服务器,登陆mysql,
创建主库备份的数据库:
create database xwiki;
执行sql文件,导入数据:
cat backup.sql | mysql xwiki;
更新连接到主库的信息(更新前停止连接到主库,更新后开启,这两个值从主库查到的信息获取):
change master to master_log_file='log_bin0001', master_log_pos=154;
7.解锁主库:
unlock tables;