十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下文内容主要给大家带来Windows系统下应该如何实现MySQL主从复制,所讲到的知识,与书籍不同,都是创新互联专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的顺平网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
启动及关闭mysql的命令。注:此命令是在cmd窗口执行
MySql启动停止命令
net start mysql
net stop mysql
修改Mysql.user表中的root用户的host权限为%,否则无法使用root用户远程连接
登入MySql执行:
SHOW VARIABLES LIKE '%datadir%';查看my.ini路径
找到配置文件my.ini,加入如下代码
[mysqld]
server-id = 1
binlog-do-db=test #要同步的数据库
#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的
log-bin=mysql-bin #要生成的二进制日记文件名称
expire_logs_days = 10 #二进制日志文件删除的天数
max_binlog_size=100M #二进制日志文件最大的大小
#bind_address=192.168.1.188 指定访问地址
character-set-server=utf8 #仅适用5.5以上版本
保存更改的配置文件
然后执行下面sql语句查询是否修改成功
SHOW VARIABLES LIKE '%log_bin%'; 查询是否生效
log_bin 的值为on说明修改成功
show variables like 'server_id';
如果server_id'不存在执行,创建 SET GLOBAL server_id=1;
接下来在master(主库)上建立一个备份账户,这里创建的账户为repl %表示任意地址的repl用户均可登入master。
GRANT REPLICATION SLAVE ON *.* TO 'repl '@'%' IDENTIFIED BY 'Abcd@1234';
从库机器上连接主库命令 mysql -h IP地址 -uroot -p ;
GRANT ALL PRIVILEGES ON *.* TO 'repl'@'%' 测试从库连接主库,如无法连接,进行授权解决
重启云服务器,查询master主机信息
show master status; 记录这里的信息,接下来配置从库是会使用
二、从库配置
将主库中data要复制的库复制到从库的data中,保持数据一直,这里我们使用的是test
然后编辑从数据库的my.ini文件
[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db=test
character-set-server=utf8 #仅适用5.5以上版本
ps:查看配置文件是否已存在server-id 如果有,需要注释掉
show variables like 'server_id';
如果server_id'不存在执行,创建 SET GLOBAL server_id=2;
停止slave 服务
stop slave;
设置从库连接时登录主数据库的账号和密码等信息,然后启动slave (ps:这最好重新查看一下master状态,以防信息发生改变 show master status; )
CHANGE MASTER TO MASTER_HOST = '192.168.1.188' ,MASTER_USER = 'repl'
,MASTER_PASSWORD ='Abcd@1234'
,MASTER_LOG_FILE ='binlog.000008'
,MASTER_LOG_POS =154;
MASTER_HOST 表示实现复制的主服务器IP地址
MASTER_USER 表示实现复制的登入远程主服务器的用户
MASTER_PASSWORD 表示实现复制的登入远程主服务器的用户密码
(这里的master_log_file和master_log_pos对应刚才show master status记下的参数。)
MASTER_LOG_FILE 表示实现复制的binlog日志文件
MASTER_LOG_POS 表示实现复制的binlog日志文件的偏移量
开启slave
start slave;
show slave status;
查看这两项是否为YES,yes为正常。
Slave_IO_Running: Yes 或 Connecting to master
Slave_SQL_Running: Yes
正常说明配置成功,接下来进行测试
mysql> create table tianyc_02(b int);
Query OK, 0 rows affected (0.16 sec)
mysql> insert into tianyc_02 values(2013);
Query OK, 1 row affected (0.13 sec)
-- 从库
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tianyc_01 |
| tianyc_02 |
+----------------+
2 rows in set (0.00 sec)
mysql> select * from tianyc_02;
+------+
| b |
+------+
| 2013 |
+------+
1 row in set (0.00 sec)
同理,可以搭建第二、第三个从节点。
对于以上关于Windows系统下应该如何实现MySql主从复制,如果大家还有更多需要了解的可以持续关注我们创新互联的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。