天天看点

主从复制详细配置

注意:主从服务器mysql版本最好一致,本次测试基于mysql5.7windows版本;主从服务器网络互通;

一、主服务器配置步骤:

  1. 安装mysql数据库;
  2. 配置my.ini文件(配置后重启mysql服务)。找到主数据库的配置文件my.ini(或者my.cnf),我的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini;

配置唯一的server-id(一般默认server-id=1,此处server-id不和从库server-id相同即可)。

开启二进制日志(),在my.ini配置文件中[mysqld]下方插入:log-bin=mysql-bin #开启二进制日志

3. 打开cmd命令行,登录mysql数据库,修改root用户的host字段,将默认host=“localhost”改为host=“%”;

  1. 查看master状态,记录二进制文件名(如下实例:mysql-bin.000001)和位置(如下实例:154),以上两个数据在从库连接主库时要用。Binlog_Do_DB字段为“允许同步的数据库的库名”。Binlog_Ignore_DB字段为“不允许同的数据库的库名”。此处在my.ini文件中设置,在[mysqld]下方加入binlog-do-db = game(数据库名。例如:game)表示允许同步“game”数据库。不允许雷同;

mysql > SHOW MASTER STATUS;

±-----------------------±-----------±--------------------±------------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

±-----------------------±-----------±--------------------±------------------------+

| mysql-bin.000001 | 154 | game | |

±-----------------------±-----------±--------------------±------------------------+

二、从服务器配置步骤:

  1. 安装mysql数据库;
  2. 配置my.ini文件(配置后重启mysql服务)。找到主数据库的配置文件my.ini(或者my.cnf),我的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini;(ProgramData可能时隐藏文件,通过%ProgramData%搜索可找到)

配置唯一的server-id,将server-id改为2。(一般默认server-id=1,此处server-id不与主库server-id相同即可。)

3. 申请访问主库;cmd命令行重启并登录mysql,执行以下sql语句(若不能执行,请按错误提示输入命令);

mysql> CHANGE MASTER TO

-> MASTER_HOST=‘10.25.101.165’, #此ip为主服务器ip地址

-> MASTER_USER=‘root’, #此root为主库用户名

-> MASTER_PASSWORD=‘0000’, #此0000为主库用户名的密码

-> MASTER_LOG_FILE=‘mysql-bin.000001’, #此mysql-bin.000001为二进制文件名,主服务器 SHOW MASTER STATUS; 命令等到的值

-> MASTER_LOG_POS=154; #此154为主服务器二进制文件位置, 主服务器 SHOW MASTER STATUS; 命令等到的值

4.启动slave进程;

mysql> start slave;
           

5.测试是否同步成功;如下红色部分,Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 均为 yes 则为成功;

mysql> show slave status\G
           

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.25.101.165

Master_User: root

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 154

Relay_Log_File: mysqld-relay-bin.000022

Relay_Log_Pos: 11765

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

如果Slave_IO_Running: connecting 表示连接主库出现问题;

可能出现的原因有:

1,网络不通;2,MASTER_LOG_POS​​​​​​​值和主服务器对不上;3,用户名或者密码错误;

4.成功后去主从服务器game数据库测试即可。