千家信息网

mysql主从复制环境搭建

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,mysql 主从第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从主my.cnf文件 (192.168.1.64)mysqld模块加入log-bin=mysql-bin 启
千家信息网最后更新 2025年11月09日mysql主从复制环境搭建

mysql 主从

第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从


  1. 主my.cnf文件 (192.168.1.64)

mysqld模块加入

log-bin=mysql-bin 启动二进制文件

server-id=1 服务器ID

binlog-do-db = 需要复制的库名可以用,分割

如果主数据库存有数据

首先进行锁表操作,不让数据进行写入动作,这么做事为了防止从数据库的原始数据和主数据库的原始数据不一致。

主进入mysql

mysql> flush tables with read lock;

mysqldump -uroot -p123456 testDB > /home/testDB.sql

scp -r /home/testDB.sql root@192.168.1.12:/home

从进入mysql

create database testDB;

mysql -u root "你的数据库名"< "你的sql文件"

做完之后进行unlock tables; 解锁表操作

进入mysql新建用户并且给从使用第一步grant replication slave on *.* to 'test'@'192.168.1.12' identified by '1234';第二步Grant all on testDB.* to 'test'@'192.168.1.12' identified by '1234' with grant option;show master status;| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000002 |      106 | testDB       |                  |+------------------+----------+--------------+------------------+


2.从my.cnf文件(192.168.1.12)


mysqld模块加入

log-bin=mysql-bin 启动二进制文件

server-id=2 服务器ID

进入mysqlchange master to master_host='192.168.1.64',master_user='test',master_password='1234',master_log_file='mysql-bin.000002',master_log_pos=2852;start slave;show slave status\G
mysql>  show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 192.168.1.64                  Master_User: test                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: mysql-bin.000002          Read_Master_Log_Pos: 2852               Relay_Log_File: mysqld-relay-bin.000002                Relay_Log_Pos: 251        Relay_Master_Log_File: mysql-bin.000002             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

要求Slave_IO_Running 和SQL等于yes才行

如果俩个有一个没有yes

检查数据库用户权限和防火墙,

从服务器登陆主测试mysql -h292.168.1.64 -utest -p

在检查serverip

mysql> show variables like 'server_id';

或者slave stop; slave start;

如果还不行就装俩个一样版本的mysql测试一下




0