设为首页 收藏本站
查看: 633|回复: 0

[经验分享] Centos7 mariadb

[复制链接]

尚未签到

发表于 2018-12-31 08:24:42 | 显示全部楼层 |阅读模式

  1 服务器
  mysql00 192.168.20.104
  mysql01 192.168.20.102
  mysql02 192.168.20.103
  haproxy  192.168.20.105
  haproxy1  192.168.20.106

  2 yum源
  vi /etc/yum.repos.d/galera.repo
  

  [galera]
  name=Galera
  baseurl=http://releases.galeracluster.com/centos/7/x86_64/
  gpgkey=http://releases.galeracluster.com/GPG-KEY-galeracluster.com
  gpgcheck=1
  [mariadb]
  name = MariaDB
  baseurl = http://yum.mariadb.org/5.5/centos7-amd64/
  enabled = 1
  gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  gpgcheck=1
  3 修改hosts hostname
  vi /etc/hosts
  mysql00 192.168.20.104
  mysql01 192.168.20.102
  mysql02 192.168.20.103
  

  vi /etc/hostname
  mysql00(01,02)
  

  

  

  4 yum install MariaDB-client MariaDB-Galera-server galera -y
  

  5 修改数据库配置文件
  

  vi /etc/my.cnf
  

  [mysqld]
  datadir=/home/mysql                    #修改mysql数据目录
  socket=/var/lib/mysql/mysql.sock
  user=mysql
  binlog_format=ROW
  bind-address=0.0.0.0
  default_storage_engine=InnoDB
  innodb_autoinc_lock_mode=2
  innodb_flush_log_at_trx_commit=0
  innodb_buffer_pool_size=122M
  innodb_log_file_size =48M
  wsrep_provider=/usr/lib64/galera/libgalera_smm.so
  #wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
  wsrep_cluster_name="cluster"
  wsrep_cluster_address="gcomm://192.168.20.104,192.168.20.102,192.168.20.103"              #配置集群中所有节点IP
  wsrep_node_name=mysql00          #本节点NAME
  wsrep_node_address="192.168.20.104"                  #本节点IP地址
  wsrep_sst_method=rsync                                           #全量同步方式
  [mysql_safe]
  log-error=/var/log/mysqld.log
  pid-file=/var/run/mysqld/mysqld.pid
  

  

  

  

  6 启动第一个节点mysql00
  必须按顺序启动,先启动第一个节点(/etc/init.d/mysql start --wsrep-new-cluster),然后启动其他节点(/etc/init.d/mysql start )
  

  /etc/init.d/mysql start --wsrep-new-cluster
  成功显示success
  在数据库中查看:
  MariaDB [(none)]> show global status like 'wsrep_cluster%';
  +--------------------------+--------------------------------------+
  | Variable_name            | Value                                |
  +--------------------------+--------------------------------------+
  | wsrep_cluster_conf_id    | 20                                   |
  | wsrep_cluster_size       | 1                                    |
  | wsrep_cluster_state_uuid | f5845fb3-abd6-11e6-82e5-627a888c772f |
  | wsrep_cluster_status     | Primary                              |
  +--------------------------+--------------------------------------+
  

   wsrep_cluster_size  1 表示已有一个节点

  

  

  7 设置数据库root密码
  

  /usr/bin/mysql_secure_installation

  

  8 配置cluster_check
  cd /tmp
wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
  
  chmod +x clustercheck
mv clustercheck /usr/bin/

  
  vi /etc/xinetd.d/mysqlchk
# default: on
# description: mysqlchk
service mysqlchk
{
        disable = no
        flags = REUSE
        socket_type = stream
        port = 9200             # This port used by xinetd for clustercheck
        wait = no
        user = nobody
        server = /usr/bin/clustercheck
        log_on_failure += USERID
        only_from = 0.0.0.0/0
        per_source = UNLIMITED
}
  
  systemctl start xinetd
  
  
安装HAproxy
  登录192.168.20.105 192.168.20.106
  vi /etc/hosts

  

  
  mysql00 192.168.20.104
  mysql01 192.168.20.102
  mysql02 192.168.20.103
  haproxy 192.168.20.105
  haproxy1 192.168.20.106
  yum -y install haproxy

  

  vi /etc/rsyslog.conf(为haproxy配置log)

  

  
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 51  

  vi /etc/rsyslog.d/haproxy.conf

  

  
local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log  

  systemctl restart rsyslog

  

  

  Create a new HAProxy configuration file

  
  cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg.orig (将之前的配置文件备份)

  

  

  vi /etc/haproxy/haproxy.cfg  (创建新的配置文件)

  

  global
  log 127.0.0.1   local2
  maxconn 1024
  user haproxy
  group haproxy
  daemon
  stats socket /var/run/haproxy.sock mode 600 level admin         # Make sock file for haproxy
  defaults
  log     global
  mode    http
  option  tcplog
  option  dontlognull
  retries 3
  option  redispatch
  maxconn 1024
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms
  listen mariadb_cluster 0.0.0.0:3030
  ## MariaDB balance leastconn - the cluster listening on port 3030.
  mode tcp
  #   balance leastconn
  balance roundrobin   #轮询
  option tcpka
  option mysql-check user haproxy    #健康检查
  server mysql00 192.168.20.104:3306 check weight 1                              #主用
  server mysql01 192.168.20.102:3306 check weight 1                              #主用
  server mysql02 192.168.20.103:3306 check weight 1  backup                #备用
  listen stats 0.0.0.0:9000
  ## HAProxy stats web gui running on port 9000 - username and password: howtoforge.    WEB界面管理
  mode http
  stats enable
  stats uri /stats
  stats realm HAProxy\ Statistics
  stats auth howtoforge:howtoforge
  stats admin if TRUE
  

  

  

  KEEPALIVED 配置    (虚拟地址为192.168.20.107)
  HAproxy
  yum install -y keepalived
  global_defs {
  notification_email {
  #    cloud_data@163.com            # e-mail地址
  }
  #    notification_email_from cloud_data@163.com
  #    smtp_server smtp.163.com   # 邮件服务器地址
  #    smtp_connect_timeout 30     # 连接超时时间
  router_id LVS_Master
  }
  vrrp_script chk_http_port {
  script  "/etc/keepalived/check_haproxy.sh"    # haproxy运行检测脚本[haproxy宕掉重启haproxy服务]
  interval        5                     # 脚本执行间隔
  weight         -5                    # 执行脚本后优先级变更:5表示优先级+5;-5则表示优先级-5
  }
  vrrp_instance VI_A {
  state MASTER                    # 主上此值为MASTER,从上为BACKUP
  interface eth0
  virtual_router_id 50            # 此值主从必须一致
  priority 100
  advert_int 1
  authentication {                  # authentication两个参数值,主从也必须一致
  auth_type PASS
  auth_pass kongzhong
  }
  track_script {
  chk_http_port
  }
  virtual_ipaddress {
  192.168.20.107        # haproxy提供的虚拟IP地址
  }
  }
  

  

  HAproxy1

  
  global_defs {
  notification_email {
  #  cloud_data@163.com
  }
  # notification_email_from cloud_data@163.com
  #smtp_server smtp.163.com
  # smtp_connect_timeout 30
  router_id LVS_Master
  }
  vrrp_script chk_http_port {
  script  "/etc/keepalived/check_haproxy.sh"
  interval        5
  weight         -5
  }
  vrrp_instance VI_A {
  state BACKUP
  interface eth0
  virtual_router_id 50
  priority 80
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass kongzhong
  }
  track_script {
  chk_http_port
  }
  virtual_ipaddress {
  192.168.20.107
  }
  }
  验证:
  在浏览器输入 http://192.168.20.107:9000/stats
  用户名/密码:howtoforge/howtoforge

  状态显示正常
  断开192.168.20.104 192.168.20.102其中一台 ,登录数据库虚拟地址  mysql -uroot -p -P 3030 -h 192.168.20.107  ,是否可以正常登录
  

  

  

  

  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657807-1-1.html 上篇帖子: Keepalived+LVS/DR服务器 基础搭建 下篇帖子: nginx+keepalived 双主热备负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表