注意:主从服务器mysql版本最好一致,本次测试基于mysql5.7windows版本;主从服务器网络互通;
一、主服务器配置步骤:
-
安装mysql数据库;
-
配置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=“%”;
- 查看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 | |
±-----------------------±-----------±--------------------±------------------------+
二、从服务器配置步骤:
-
安装mysql数据库;
-
配置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数据库测试即可。