问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助Mariadb 配置集群后,无法启动

发布网友 发布时间:2022-04-07 17:50

我来回答

2个回答

懂视网 时间:2022-04-07 22:12

集群介绍:

Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。 

主要功能:

  • 同步复制
  • 真正的multi-master,即所有节点可以同时读写数据库
  • 自动的节点成员控制,失效节点自动被清除
  • 新节点加入数据自动复制
  • 真正的并行复制,行级
  • 用户可以直接连接集群,使用感受上与MySQL完全一致
  • 优势:

  • 因为是多主,所以不存在Slave lag(延迟)
  • 不存在丢失交易的情况
  • 同时具有读和写的扩展能力
  • 更小的客户端延迟
  • 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的
  • 实现技术:

    Galera集群的复制功能基于Galera library实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。

          

    实践操作:负载均衡集群搭建

     技术分享 

     

    1 .下载mariadb集群

     wget http://mirrors.opencas.cn/mariadb/mariadb-galera-10.0.17/bintar-linux-x86_64/mariadb-galera-10.0.17-linux-x86_64.tar.gz

     

    2. 添加mariadb用户和组

      groupadd mariadb

      useradd -g mariadb mariadb

    3. 将下载的文件拷贝到目录/usr/src下

    4. 解压并拷贝解压后的文件到/usr/local/mysql下

       root@ubuntu:/usr/src# tar -zxvf mariadb-galera-10.0.17-linux-x86_64.tar.gz

       root@ubuntu:/usr/local# cp -R mariadb-galera-10.0.17-linux-x86_64 /usr/local/mysql

    5. 修改文件夹的所属用户和组

       root@ubuntu:/usr/local# chown -R mariadb:mariadb mysql/

    6. 安装mariadb字典数据库,确保数据库安装成功

      mariadb@ubuntu:/usr/local/mysql$ ./scripts/mysql_install_db

      在数据库中创建一个专门用来在各节点间进行复制的节点

    7. 配置集群中节点1的启动参数文件,my1.cnf

       主要在[mysqld]选项下面,加入如下配置:

       log-bin=mysql-bin

    binlog_format = ROW

    server-id       = 1

    innodb_autoinc_lock_mode = 2

    wsrep_provider = /usr/local/mysql/lib/libgalera_smm.so

    wsrep_cluster_name = "my_mariadb_cluster"

    wsrep_cluster_address="gcomm://"

    wsrep_node_name = "cluster_node1"

    wsrep_node_address = 127.0.0.1:4406

    启动节点1:

    ./bin/mysqld --defaults-file=my1.cnf --wsrep-new-cluster

     

    8. 配置集群中节点2的启动参数文件,my2.cnf

       主要在[mysqld]选项下面,加入如下配置:

    log-bin=mysql-bin

    binlog_format = ROW

    datadir = /usr/local/mysql/data1

    server-id   = 2

    innodb_autoinc_lock_mode = 2

    wsrep_provider = /usr/local/mysql/lib/libgalera_smm.so

    wsrep_cluster_name = "my_mariadb_cluster"

    wsrep_cluster_address="gcomm://127.0.0.1:4406"

    wsrep_node_name = "cluster_node2"

    wsrep_node_address = 127.0.0.1:4407

     

    9. 配置集群中节点3的启动参数文件,my3.cnf

       主要在[mysqld]选项下面,加入如下配置: 

        log-bin=mysql-bin

    binlog_format = ROW

    datadir = /usr/local/mysql/data2

    server-id  = 3

    innodb_autoinc_lock_mode = 2

    wsrep_provider = /usr/local/mysql/lib/libgalera_smm.so

    wsrep_cluster_name = "my_mariadb_cluster"

    wsrep_cluster_address="gcomm://127.0.0.1:4407"

    wsrep_node_name = "cluster_node3"

    wsrep_node_address = 127.0.0.1:4408

     

    10. 检查并测试集群是否启动成功

    观察命令show status like ‘wsrep%‘; 的输出信息,看是否有3个节点。

    连接到集群中的任何一个节点:

    ./bin/mysql --host 127.0.0.1 --port 3307 -umycluster -p123456

    在test数据库下创建一个表goods

    create table goods (id int(11) not null, name varchar(20));

    插入一条记录:

    insert into goods(id,name) value(1,‘iphone7‘);

    然后登录到另外一个节点检查刚才创建的表和记录是否存在:

    ./bin/mysql --host 127.0.0.1 --port 3306 -umycluster -p12345

    MariaDB [test]> select * from goods;

    +----+---------+

    | id | name    |

    +----+---------+

    |  1 | iphone7 |

    +----+---------+

    我们看到记录已经存在,再次证明集群已经搭配好。

     

    11.配置haproxy

     下载:wget http://down1.chinaunix.net/distfiles/haproxy-1.4.21.tar.gz

     编译:make TARGET=linux26 PREFIX=/usr/local/haproxy

     安装:make install PREFIX=/usr/local/haproxy

    在/usr/local/haproxy下添加配置文件haproxy.cfg

        修改配置文件内容如下:

    global

            log            127.0.0.1        local0

            log            127.0.0.1        local1 notice

            #log loghost    local0 info

            maxconn         4096

            user            haproxy      #所属运行的用户

            group           haproxy      #所属运行的组

            nbproc          1

            pidfile         /usr/local/haproxy/haproxy1.pid

            #debug

            #quiet

     

    defaults

            log            global

            option         tcplog

            option         dontlognull

            retries         3

            option          redispatch

            maxconn         4096

            timeout         connect  50000ms

            timeout         client   50000ms

            timeout         server   50000ms

     

    listen  mariadb-galera

            bind 127.0.0.1:3399  #客户端监听端口

            mode tcp

            balance  leastconn  #最少连接的负载均衡算法

            server   db1  127.0.0.1:3306 check

            server   db1  127.0.0.1:3307 check

            server   db1  127.0.0.1:3308 check

     

    启动haproxy:

    ./sbin/haproxy -f haproxy.cfg

     

    根据最少连接的负载均衡算法,haproxy将读写请求重定向到最少连接的数据库服务器上。

    检查haproxy是否配置正确:

     

    先连接上: mariadb@ubuntu:/usr/local/mysql$ ./bin/mysql --host 127.0.0.1 --port 3399 -umycluster -p123456 #注意连接端口为3399,是haproxy服务器的监听端口

     

    插入一条记录试试:insert into goods(id,name) value (2,‘lumia‘);

    Query OK, 1 row affected (0.19 sec)

    成功,说明haproxy配置ok

    负载均衡的mariadb集群搭建

    标签:

    热心网友 时间:2022-04-07 19:20

    操作:

    1、创建/data目录
    mkdir /data
    chmod 777 /data(要给这个目录至少要附加读写权限)

    2、把mariadb服务停掉:
    systemctl stop mariadb.service

    3、把/var/lib/mysql整个目录复制到/data
    cp -r /var/lib/mysql/* /data/
    这样就把MySQL的数据文档复制到了/data下

    4、编辑mariadb的配置文档/etc/my.cnf

    在[client]下添加:
    把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。

    在[mysqld]下添加:
    把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。

    datadir =/datal   (这行没有,需要自己加上)

    保存后退出。

    5、 chown -R mysql:mysql /data/mysql

    6、重新启动mariadb服务
    systemctl start mariadb.service。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    ...下图方式对折一分为二裁开成为A2纸(如图(2) 明信片怎么样固定 为什么我的高考录取通知书还没有到? 梦见我孙女光秃秃的躺在路上的预兆 师兄请按剧本来分集剧情介绍(第1-40全集)大结局,几点更新,在哪个台播出... 发挥什么优势 三合一烤肠机接煤气罐接口可以换方向吗 关于福睿斯4年,3万公里保养问题请教? 福睿斯水箱加水在哪里 福睿斯水箱加水在哪里加 CSGO武器箱怎么获得 CSGO武器箱钥匙在哪买便宜 港版苹果耳机airpods三代一个坏了用国行的可以吗 很小一粒粒一粒的,请问是什么水果? 外面有刺,里面一粒一粒像石榴的是什么水果? 吃起来酸酸的后来有点甜的水果叫什么一粒一粒青色的 请教MAC下如何查看快门数 一粒粒的圆圆的比橄榄小 肉是绿色的核是黑色的是什么水果 中国古代就有身份证了,最早时候的身份证材质是竹子还是羊皮? 有一种水果:它里面是一粒粒红红的果肉 三星手机可以用苹果的Airpods吗 探为什么文与可能够把竹子画得栩栩如生?2胸有成竹本义是指 一种水果,里面中间有许多一粒粒的,是像瓜子一样的,外圈是土*的有点像地瓜 弱弱的问一下,mac上谁知道怎么看图片的像素? 外皮是黄的,里面是红色的一粒粒的果肉,并且每一粒都有核,请问这是什么水果 苹果airpods二代可以用在三星note20吗? 肾结石怎么治疗比较好比较快! MAC iPhoto如何查看照片EXIF信息有快捷键吗 这种水果学名叫什么 打开里面是一粒粒的果实 MAC OS X系统下,如何查看照片的ISO参数? 长得像苦瓜(但是是*的,头部有些绿),里面是红色的一粒一粒的是什么水果? 肾结石能吃花生吗 如何安装电脑网线 说我是草食系,女生说是她是肉食系什么意思!她说要把我也变成肉食系的!吃肉吗?什么意思!还有S我什么意 90后女主持靠初恋脸一夜爆红,是谁? 草食系是什么意思? 怎么安装电脑网线 家庭教师冷笑话 或冷故事 怎么给电脑安装一个网线 被观众称为“小倪萍”的90后女主持人是谁? 有关家教的搞笑故事 梦见下大雨,自己跑着跑着弯下腰卷起裤脚继续往前跑,是什么意思 怎样把豆腐脑点的老些 央视女主持马凡舒,她如何逆袭成为央视女神? 央视第一美女主持人,为事业戴假发13年,摘下假发判若两人,她是谁? 为什么梦见了走在半路上,却突然下雨了,然后自己又往回跑 她是央视著名美女主持人,两任丈夫都身份显赫,为何女儿却成为一生的痛呢? 日本有几个省 省的名称叫什么? 日本一共有几个省? 日本的经济产业省指的是什么? 日本几个省? win10 看不到一些隐藏文件?