为了账号安全,请及时绑定邮箱和手机立即绑定

[mysql主从复制配置]MySQL数据库主从配置

标签:
MySQL

MySQL数据库主从配置详解

现有两台机器 A、B 需要实施 MySQL 的主从热备份,A 作为主服务器,B 作为副服务器

A、B 的操作系统一样,mysql 版本均为 5.0

A服务器ip:192.168.10.110

B服务器ip:192.168.10.2

详细操作步骤如下:

1、主服务器授权

授权副服务器可以连接主服务器并进行更新。也就是在A服务器上添加一个mysql 账号让B服务器可以通过这个账号连接A服务器的mysql 并进行相关更新操作。

例如:grant replication slave on *.* to 'aaa@'124.70.218.105' identified by '123456';

2、数据复制

建立好访问许可之后,接下来是主服务器向副服务器复制数据。在A服务器上有个bacdbk数据库,我们现在假设以这个数据库来作同步,将A的backdb数据库复制到B服务器上,可以使用 mysqldump工具,操作完成之后如下两图所示:

A 服务器:(主服务器)

https://img1.sycdn.imooc.com/5ff3cef70001800d01620155.jpg

B 服务器:(副服务器)

https://img1.sycdn.imooc.com/5ff3cf020001630301710151.jpg

现在 A、B 服务器都有 backdb 数据库了,复制完成

3、配置主服务器(A服务器)

修改mysql 的配置文件 my.cnf(/etc/my.cnf),Windows 下是 my.ini

找到 server-id,给主服务器的 server-id 指定一个值(注意:主服务器和副服务器的server-id

的值不能相同)。另外还要在主服务器启动二进制日志,即在选项配置文件中添加 log-bin 启动选项。配置示例如下:

# 唯一值,并不能与服务器的值相同

Server-id=1

#日志文件以 mysql-bin 为前缀

log-bin = mysql-bin

#日志文件跳过的数据库(可选属性)

binlog-ignore-db=mysql

#日志文件操作的数据库(可选属性)

binlog-do-db=backdb

小结:

Server-id=1

log-bin = mysql-bin

binlog-ignore-db=mysql

binlog-do-db=backdb

配置好之后重启 mysql 服务器,在重启之前清空二进制日志(reset master 命令)

mysql>reset master;

Query OK, 0 rows affected (0.00 sec)

4、配置副服务器(B 服务器)

修改副服务器的mysql 配置文件(注意:副服务器的mysql 版本不能低于主服务器的mysql版本)my.cnf 文件。

[mysqld]

#唯一,并与主服务器上的 server-id 不同。

server-id=2

#主服务器的主机名或者 ip 地址

master-host=192.168.10.110

#如果主服务器没有在默认的端口上监听,则需确定 master-port 选项

master-port=3306

#主服务器中创建的用户名和密码

master-user=aaa

master-password=123456

#复制操作要针对的数据库(可选,默认为全部)

replicate-do-db=backdb

#如果主副服务器间连接经常失败,需增加 master-retry-count 和 master-connect-retry

#master-retry-count 连接重试的次数

#master-connect-retry 连接失败后等待的秒数

master-retry-count = 999

master-connect-retry = 60

小结:

server-id=2

master-host=192.168.10.110

master-port=3306

master-user=aaa

master-password=123456

replicate-do-db=backdb

master-retry-count = 999

master-connect-retry = 60

Master.info 文件

在日志目录下有个 master.info 文件,其中包含所有有关复制过程的信息(连接主服务器的相关信息及与主服务器交换数据的相关信息)。在初次启动以后,副服务器将检查这个master.info 文件,以得到相关信息。如果想修改复制选项,删除 master.info 并重启 MySQL 服务,在启动过程中使用选项配置文件中的新选项进行重新创建了 master.info 文件。

5、管理服务器过程

5.1、管理主服务器

显示数据库服务器上有关线程的信息

https://img1.sycdn.imooc.com/5ff3d1b30001575304890125.jpg

显示二进制日志信息

https://img4.sycdn.imooc.com/5ff3d1d10001a32c04800121.jpg

显示主服务器二进制其他信息

https://img2.sycdn.imooc.com/5ff3d1e0000177c704700123.jpg

5.2、管理副服务器:在上面步骤4中配置好副服务器后需要重启 mysql 服务,进入mysql 命令行用于开始复制

mysql>start slave;

Query OK, 0 rows affected, 1 warning(0.00 sec)

查看服务器的状态信息,其中 Slave_IO_Running 对应的值为 YES, Slave_SQL_Running 对应的值为 YES

https://img1.sycdn.imooc.com/5ff3d351000105e104390542.jpg

6、查看数据同步情况

现在主、副服务器数据库起点一样,backdb数据库下都有一张空表 t_user

主服务器(A服务器)

mysql> use backdb;

Database changed

mysql> select * from t_user;

Empty set (0.00 sec)

副服务器(B服务器)

mysql> use backdb;

Database changed

mysql> select * from t_user;

Empty set (0.02 sec)

根据上面的显示,两个库都是空表,现在我们在主服务器(A服务器)的表中添加数据,看看副服务器(B服务器)有没有同步数据

主服务器(A服务器)

mysql> insert into t_user values('10000','suxh');

Query OK,1 row affected (0.00 sec)

mysql> select * from t_user;

https://img1.sycdn.imooc.com//5ff3d5d700018b1501750095.jpg

副服务器(B服务器)

https://img1.sycdn.imooc.com//5ff3d5f70001edee02010109.jpg

这时看到B服务器也有数据了,那么说明我们的整个操作是没有问题的,即实现了mysql的主从配置。

每天都为您呈现经过小编精心整理与筛选的相关技术文档与资料,为的就是能够和业内的朋友和广大爱好者一起学习,一起讨论、一起进步,欢迎您随时留言和大家一起探讨,与君共勉!


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消