MySQL Replication同步配置详细步骤

MySQL · ruyi · 于 2年前发布 · 1789 次阅读

MySQL同步配置步骤

主库的操作:

1.主库修改配置文件/etc/my.cnf,开启binlog 配置server id,如下

log-bin                 = mysql-bin
binlog_format           = mixed
server-id               = 1

2.在主库增加从库需要的同步账号

mysql>GRANT REPLICATION SLAVE ON *.* TO ' replication '@'%' IDENTIFIED BY 'replication';
mysql>flush privileges;

3.主库停止写入,备份数据库,并记录binlog位置 给数据表加只读锁,保持数据一致

mysql>FLUSH TABLES WITH READ LOCK;

备份数据

# mysqldump -uroot -h 127.0.0.1 --opt gcore >/usr/local/mysql/backup/gcore.sql

将备份文件传输到从库

#cd /usr/local/mysql/backup/
#tar -czvf gcore.tar.gz gcore.sql
#scp gcore.tar.gz root@118.145.22.18:/usr/local/mysql/backup

解锁表

mysql>UNLOCK TABLES;

记录binlog位置,从库同步时需要

mysql> show master status;
+------------------+-----------+--------------+-------------------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB              |
+------------------+-----------+--------------+-------------------------------+
| mysql-bin.000137 | 676410377 | gcore        | mysql,test,information_schema |
+------------------+-----------+--------------+-------------------------------+

从库操作: 1.从库修改配置文件,配置唯一的server id

server-id               = 2

2.导入主库备份出来的数据

mysql -uroot -p gcore < gcore.sql

3.执行同步命令 在slave上执行如下命令

mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.41',
    -> MASTER_USER=' replication,
    -> MASTER_PASSWORD='password',
    -> MASTER_LOG_FILE='mysql-bin.000137', //这里根据主服务器的binlog和id设置
    -> MASTER_LOG_POS=676410377;

执行完之后执行:

 mysql> slave start;
 Query OK, 0 rows affected (0.00 sec)
 mysql> show slave status\G;

从输出看到:Slave_IO_Running和Slave_SQL_Running如果都为Yes时,表示配置成功。

主库解锁

mysql>UNLOCK TABLES;

如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的帖子。

本帖已经被管理员设置为: 精华帖 !
共收到 2 条回复 Replication MySQL 同步

一般对应多个实例的时候,可能需要带上port。可以把 change master 的语法贴出来。

change master to master_host='ip',master_user='user',master_password='pwd',\
master_log_file='mysql-bin.000003',master_log_pos=52300,master_port=3307;
ruyi#22年前 0 个赞

@liushuiwuqing #1楼 是的 这里需要注意的。

回复本帖 (需要登录)