【新手超详细】LVS+KeepAlived+Mysql 集群搭建

  1. MySql安装
    1. 环境检查

由于不能保证服务器之前是否安装过Mysql,以及安装版本是否能满足要求需要对目标服务器进行环境检查。

  1. 安装前先确认系统是否已安装数据库

rpm –qa | grep mysql

注意使用rpm命令时,参数要区分大小写。

目标服务器上存在Mysql数据库,所以需要先删除目标服务器上的MySQL服务。

  1. 删除目标服务上原有Mysql服务。

执行:yum -y remove mysql- * //删除原有服务,并相对应的删除某些关联包。

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第1张图片

删除完成会自动退出到命令行状态。

  1. MySql安装

使用上传工具将目标程序包上载到目标服务器,开始执行安装。

  1. 安装MYSQL-server 备注:MySQL的主程序包

  1. 安装Mysql开发类库支持包

  1. 安装远程连接支持包

至此,Mysql已经安装到系统之中。

  1. 默认密码登录
  1. 启动Mysql服务:service mysql start

  1. 查看默认密码登录口令

备注:默认口令文件默认会在root家目录下生成,是个隐藏文件,注意文件名前面的点.

  1. 使用默认密码口令登录

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第2张图片

出现mysql> 证明登录成功。

  1. 修改默认密码

备注:第一次使用默认密码登录需要修改登录密码,否则会出现如下提示。

修改登录密码:

修改密码完成,可以退出,使用新密码登录,测试是否修改成功。

退出MYSQL数据库使用exit命令

  1. 远程访问

说明:Mysql默认不允许远程访问,需要手工配置目标服务允许远程访问。

别忘记刷新

备注:由于命令特殊请复制使用:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

  1. 配置文件修改

备注:默认安装的MySQL会在/usr/my.cnf 有配置文件,我们需要复制到/etc下使用。怎么复制此处不做说明。

说明:Mysql配置文件的读取顺序—/etc/my.cnf  /etc/mysql/my.cnf  /usr/my.cnf ~/.my.cn 后面文件如果存在,且和之前文件存在相同配置,后面配置的属性值会覆盖前面文件的值。

Host1

[mysqld]

datadir = /var/lib/mysql

port = 13306

user=mysql

socket = /var/lib/mysql/mysql.sock

lower_case_table_names=1  #不区分大小写

max_connections=1000      #最大连接数

event_scheduler=1    #打开事件调度器

skip-name-resolve    #禁止MySQL对外部连接进行DNS解析

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

max_allowed_packet = 30M  #blob字符长度过时大容易报错,本项目设置30M即可

wait_timeout=2147483    #自动断开连接的时长,此值为最大值,约24.85

interactive_timeout=2147483    #自动断开连接的时长

log-bin

expire_logs_day=5

Host2

[mysqld]

datadir = /var/lib/mysql

port = 13306

user=mysql

socket = /var/lib/mysql/mysql.sock

lower_case_table_names=1

max_connections=1000

event_scheduler=1

skip-name-resolve

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

max_allowed_packet = 30M  #blob字符长度过大时容易报错,本项目设置30M即可

wait_timeout=2147483    #自动断开连接的时长,此值为最大值,约24.85

interactive_timeout=2147483    #自动断开连接的时长

log-bin

expire_logs_day=5

重启Mysql服务

启动如果出现错误请检查配置文件。

至此,单机版Mysql配置完成,并可以使用。

  1. 双主复制(集群)
    1.  创建复制用户(Host1和Host2都需要创建)
  1. 创建复制用户

CREATE USER 'repl'@'%' IDENTIFIED BY '123456';

  1. 给用户授权

grant replication slave, file, select on *.* to 'repl'@'%' ;

        

  1. 刷新

flush PRIVILEGES;

Host2与Host1配置方式一样不再做陈述。

  1.  配置文件修改(Host1和Host2都需要添加)

打开/etc/my.cnf文件添加如下内容:

HOST1:

binlog_format=mixed

server-id=1  #可任意设置,与其他服务器不同即可

binlog_do_db=sgmst_dky    #同步的数据库,可不写

binlog_ignore_db=information_schema  #不需要同步的数据库,可不写

binlog_ignore_db=performance_schema

binlog_ignore_db=mysql

auto-increment-increment = 2  

auto-increment-offset = 1  

Host2:

binlog_format=mixed

server-id=2    #可任意设置,与其他服务器不同即可

binlog_do_db=sgmst_dky    #同步的数据库,可不写

binlog_ignore_db=information_schema  #不需要同步的数据库,可不写

binlog_ignore_db=performance_schema

binlog_ignore_db=mysql

auto-increment-increment = 2 

auto-increment-offset = 2   

  1.  双主互配(Host1和Host2分别配置)

说明:两台服务器均为新建立,且无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制起始位置即可。否则,需要先备份主库,在备库进行恢复,从而保持数据一致,然后再指向master。

  1. 检查服务目前的二进制日志文件

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第3张图片

  1. 登录MySQL数据库

 

  1. 相互配置指向

Host1:配置Host2的信息。

CHANGE MASTER TO

    -> MASTER_USER='repl',

    -> MASTER_HOST='192.168.179.110',

    -> MASTER_PASSWORD='123456',

    -> MASTER_PORT=3306,

    -> MASTER_LOG_FILE='mysql-bin.000001',

    -> MASTER_LOG_POS=120; 

          Host2:配置Host1的信息

         CHANGE MASTER TO

    -> MASTER_USER='repl',

    -> MASTER_HOST='192.168.179.111',

    -> MASTER_PASSWORD='123456',

    -> MASTER_PORT=3306,

    -> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=120;

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第4张图片

  1.  双主状态检查(Host1和Host2分别操作)
  1. 启动复制进程

  1. 进程状态检查

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第5张图片

标识位置如果如图所示,证明配置成功。

  1. 测试

db1创建表,看db2 是否有相同表生成;

在db2插入数据,看数据是否同步到db1。

  1. KeepAlive故障转移
    1. Keepalive安装
  1. 文件上传

建议上传到/opt文件夹下。

  1. 解压文件

tar zxvf keepalived-1.2.18.tar.gz

  1. 安装环境检查:

:进入解压的文件夹

环境检查

出现如下截图证明完成

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第6张图片

  1. 源码编译:make

编译完后如下图所示

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第7张图片

  1. 安装

【新手超详细】LVS+KeepAlived+Mysql 集群搭建_第8张图片

  1. 部署

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/:启动脚本转移到系统目录

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ :配置文件转移到系统目录

mkdir /etc/keepalived :创建配置文件存放目录

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ :配置文件转移到系统目录下

cp /usr/local/sbin/keepalived /usr/sbin :脚本转移到系统目录

chkconfig --add keepalived :添加成开启自启动服务

chkconfig --level 345 keepalived on :设置在启动级别345上开启

  1. 配置文件修改

打开配置文件

Vim /etc/keepalived/ keepalived.conf

添加如下配置文件

注意:Keepalived服务启动时不会检查配置文件是否存在语法错误,所以务必检查好配置文件的正确性。

! Configuration File for keepalived

global_defs { 

      

      smtp_server 127.0.0.1 

      smtp_connect_timeout 30 

      router_id nyw-db2  #hostname

      } 

 

 vrrp_instance VI_1 { 

      state BACKUP   #

      interface eth0 

      virtual_router_id 51 

      priority 90 

      advert_int 1 

      authentication { 

      auth_type PASS 

      auth_pass 1111 

      } 

      virtual_ipaddress { 

      192.168.25.202 

      } 

    } 

 

 virtual_server 192.168.25.202 13306

      delay_loop 2 

      lb_algo wrr 

      lb_kind DR 

      persistence_timeout 60 

      protocol TCP 

      real_server 192.168.25.201 13306

      weight 3 

      notify_down /usr/local/script/mysql.sh 

      TCP_CHECK { 

      connect_timeout 10 

      nb_get_retry 3 

      delay_before_retry 3 

      connect_port 13306 

      } 

    }

  }

说明:为防止master1宕机恢复正常后于master2进行vip的争执接管,这里我们使用的conf文件中状态为backup

  1. 监控文件
  2. 启动服务

 

  1. 测试

 

你可能感兴趣的:(Mysql技术分享,LINUX技术分享,linux,mysql,数据库,mysql优化)