MySQL High Availability总结(二) 配置Master

MySQL或者MariaDB实现高可用性最主要的就是主(Master)从(Slave)复制(Replaction)技术。一般主下挂多个从,根据场景分发请求到从上减少主库的压力或者起到灾备数据的功能(通过从可以对数据不进行干涉来分析数据,或使用从进行数据备份),当然Replaction技术还有很多用处。而且Replaction也拥有很多配置方案,这里先暂时只介绍最简单的配置方法。后面会一步一步介绍MariaDB复制和高可用的更深入的技术。
配置Master其实很简单,分如下步骤:
1、 配置二进制日志以及日志索引。
2、 配置服务器id
3、 创建复制账户,并且授权
4、 启动Master
在详细说明复制技术之前,请确保拥有两台或两台以上的带有MariaDB服务的设备(包含一个主和一个或多个以上的从)。这里我只使用了一台服务器上跑多个实例的方式配置Replaction。
下面详细说明这四个步骤:
1、 编辑MariaDB的配置文件,在这里我的master配置文件命名为:my_master_3310.cnf。由于我在一台服务器中使用多个实例,所以master端口配置为3310。同样socket文件以及pid文件都重新制定,socket指定为:/data/var/mariadb/mariadb_3310.sock,pid指定为:/data/var/mariadb/mariadb_3310.pid。
在Replaction技术中最重要的就是二进制文件。二进制文件包含了除了where条件以外的DDL和DML语句的执行内容。主要作用:记录语句执行过程方便恢复、Replaction时主从同步等。详细的说明在后续小节中。
在配置文件的[mysqld]中加入log-bin=master-bin,log-bin指定了二进制日志文件的名称的前缀。二进制日志文件会根据大小分成多分,分出的文件都是以log-bin指定的值加上.xxxx,如master-bin.000001、master-bin.000002等。
log-bin-index描述了二进制日志文件的索引文件,索引文件包含了所有二进制日志文件名,方便数据库去快速读取下一个日志文件。
这里写图片描述
2、 配置[mysqld]下的server-id=1。server-id在复制技术中起到了很重要的作用,server-id在复制链中是不可以重复的,在主从同步过程中会传输server-id,如果出现两台server-id相同的服务器,在连接到master上时,那其中一台已经连接的就会被踢掉。而master的server-id一般都为1。server-id必须为1到2的32次幂-1之间的一个正整数值,并且注意后续的slave配置中的server-id不要与master这里的server-id相同。
这里写图片描述
配置了log-bin、log-bin-index、server-id后保存退出。
3、 为了安全起见,我们不应该使用root用户或者线上应用连接数据库时使用的用户当做复制用户,所以需要创建一个新的专门用于复制的用户(当然这个用户权限也挺大的)。
首先创建用户,执行:

crete user rep_user@’%’ identified by ‘mysql123’;

创建一个用于复制的用户rep_user,允许任意主机登陆,鉴权密码为mysql123。
这里写图片描述
创建用户完成后,需要对该复制用户授权。执行:

grant replication slave,reload,create user,super on *.* to rep_user@’%’with grant option; 

为用户rep_user@’%’赋予复制从、重新加载、创建用户、允许终止任何查询以及授权操作权限。这些权限都是主从复制是必须拥有的,由于该用户权限比较大,建议把该用户的Host改为只允许内网或者固定的复制机器才能登陆。
这里写图片描述
到此为止,master就配置完了,很简单。下面需要启动master。
4、 执行启动命令:

sudo /srv/mariadb/bin/mysqld_safe –--default-file=/data/config/mariadb_config/my_master_3310.cnf &

mysqld_safe方式启动更为安全些,mysqld_safe主要做了如下操作:

  • 检查系统和选项。
  • 检查MyISAM表。
  • 保持MySQL服务器窗口。
  • 启动并监视mysqld,如果因错误终止则重启。
  • 将mysqld的错误消息发送到数据目录中的host_name.err 文件。
  • 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件。
  • –default-file参数列表内容给出了数据库启动时默认使用哪个配置文件。 &让脚本

在后台运行。

master到此就配置完成了,现在可以连接上去看看。执行:

mysql –u root –p –S /data/var/mariadb/mariadb_3310.scok

这里需要注意一下通过-S参数指定master的sock文件。
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章