mysql主从服务器同步的步骤

时间:2023-02-10 11:59:00

1.主服务器配置

  • 在主服务器上为从服务器建立一个用户:

grant replication slave on *.* to '用户名'@'主机' identified by '密码';

  • 编辑主服务器的配置文件:/etc/my.cnf

server-id=1
log-bin
binlog-do-db=需要复制的数据库名

  • 重启主服务器

    mysql主从服务器同步的步骤

  • 查看服务器状态

    mysql主从服务器同步的步骤

  • 配置成功

2.从服务器配置

  • 编辑从服务器的配置文件:/etc/my.cnf

server-id=2
master-host='主机'
master-user='用户名'
master-password='密码'
master-port=端口
replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-ignore-db=需要复制的数据库名

我这样配置没有成功,按照下面的配置成功了:

/etc/my.cnf中

server-id=2

replicate-do-db=需要复制的数据库名

接着运行

mysql> CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,

MASTER_USER=<user>, MASTER_PASSWORD=<password> ;


where you replace <host>, <user>, <password> by quoted strings and

<port> by the master's port number (3306 by default).


Example:


mysql> CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,

MASTER_USER='joe', MASTER_PASSWORD='secret';


  • 重启从服务器(在从服务器上运行)

mysql主从服务器同步的步骤

  • 查看状态

    mysql> show slave status;

会显示相关的信息,注意Slave_IO_Running 和 Slave_SQL_Running的状态都为YES,而且没有错误提示。


3.最后我发现,主从服务器要同步的数据库的名字要一样,同步的表的结构等也要一样,不然同步不了,目前我还没有实现数据库名不一样时的同步。虽然没有解决我的问题,但还是记录下来以供参考。