1.master端
vim my.cnf写入下面数据
server-id=2 //设置标识,具有唯一性
log-bin=mysql-bin //设置日志格式
binlog-do-db=test //设置要同步到slave的数据库
2.创建一个账户,并赋予相关权限,用于让slave登入
CREATE USER 'account'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.199.198';
3.进入mysql,查看file名和position,等会有用
>show master status;
====================================================================
1.slave端
vim my.cnf写入下面数据
server-id=3
log-bin=mysql-bin
2.进入mysql设置slave参数
>CHANGE MASTER TO MASTER_HOST='192.168.8.240', MASTER_USER='slave', MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=837;
备注:
MASTER_HOST='192.168.8.240' //master的主机IP
MASTER_USER='slave' //上面master创建的用户
MASTER_PASSWORD='password' //该用户的密码
MASTER_LOG_FILE='mysql-bin.000004' //master端file
MASTER_LOG_POS=837 //master端position
3.运行,查看slave
>start slave; //stop slave等,开启关闭slave;
>show slave status\G; //查看状态
看到如下两个参数为yes即为启动成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
备注:两个mysql,必须配置结构一模一样,才能开启这个主从服务器,才不会出现失败现象;
写在主库配置文件里参数(对所有从库都有效)
binlog_do_db=库名列表 //允许同步的库
binlog_ignore_db=库名列表 //不允许同步的库
写在从库配置文件里参数(只针对从库本机有效)
replicate_do_db=库名列表 //指定只同步的库
replicate_ignore_db=库名列表 //指定不同步的库
========================================================
如果主服务器已经有应用数据,则在进行复制时需要锁表
(1)主数据库进行锁表操作,不让数据再进行写入动作
mysql> FLUSH TABLES WITH READ LOCK;
(2)查看主数据库状态
mysql> show master status;
(3)记录下 FILE 及 Position 的值。
将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。
(4)取消主数据库锁定
mysql> UNLOCK TABLES;
转载:https://www.cnblogs.com/fyc119/p/7529902.html