提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、第一步
1、检查主库从库磁盘空间,检查主库到从库的网络,包括延迟和文件复制速率;
2、备份数据库(建议备份)。
二、第二步 配置主数据库
1、设置主机,如果已经设置过,检查一下主机的配置
vi /etc/my.cnf
添加二进制日志配置,开启二进制(mysql-bin只是二进制日志名称,可以自行指定)
server-id=1 #id是一定要指定的,是唯一的标识(master数据库要比slave数据库的id优先级高才行)
log-bin=mysql-bin #开启二进制日志
2、登录数据库,创建同步账户并授权
CREATE USER ‘suser’@‘%’ IDENTIFIED BY ‘666666’;
grant replication slave on . to ‘suser’@‘%’ identified by ‘666666’;
flush privileges;
3、退出数据库重启服务
service mysql stop
service mysql start
4、主库加读锁
flush tables with read lock;
5、再登录数据库,查看master的状态
show master status;
记录mysql-bin文件名,如mysql-bin000001,后续会用到
记录position日志所在位置 ID如154,后续会用到
每隔几分钟重复执行show master status;以确认position所在位置是否有数据变化,最好多刷几次,如果bin和id值有变化,查看是否加了读锁
三、第三步准备从数据库
1、备份从库mysql/data/目录下的所有文件(空间充足的话,可以直接把data目录重命名一下)(从库数据无用可不备份)
2、进入主服务器,复制主库mysql/data/目录下面的所有“文件夹”,到从库对应位置;
scp -r 主库data所在目录 从库IP:从库data所在目录
scp -r /test/mysql/data 127.0.0.1:/test/mysql/
3、进入从服务器,赋予data访问权限
chown -R mysql.mysql 从库data所在目录
4、配置从库my.cnf配置文件,添加以下字段
server-id=2
log-bin=mysql-bin
5、退出数据库重启服务
service mysql stop
service mysql start
6、登录数据库
mysql -uroot -p
7、以下命令需要替换上面master的mysql-bin和position
change master to master_host=‘主库IP’,master_user=‘suser’,master_password=‘666666’,master_log_file=‘mysql-bin.000010’,master_log_pos=154;
8、#启动热备复制
start slave;
#stop slave;
9、解除主库读锁
10、查看从服务器复制状态
show slave status\G;
需要看到Slave_IO_Running: Yes和Slave_SQL_Running: Yes
测试一下,在主库创建测试表,看从库是否会自动复制过来
主从同步常用命令
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;跳过当前从库正在执行命令
show relaylog events in ‘1-0002-relay-bin.000004’ FROM 457395576 LIMIT 0 ,100;#显示日志