centos mysql群集,装centos7
大家好,今天来为大家解答centos mysql群集这个问题的一些问题点,包括装centos7也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
arm架构Centos7.6部署Mysql集群的步骤(arm安装mysql)
CentOS与Redhat关系
RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码重新编译一次,形成一个可使用的二进制版本。由于Linux的源代码是GNU,所以从获得RedHat的源代码到编译成新的二进制,都是合法。只是RedHat是商标,所以必须在新的发行版里将RedHat的商标去掉。
RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。
如果你要将你的RedHat转到CentOS上,因为你不希望为RedHat升级而付费。当然,你必须有丰富UNIX使用经验,因此,RedHat的商业技术支持对你来说并不重要。但如果你是单纯的业务型企业,那么还是建议你选购RedHat软件并购买相应服务。这样可以节省你的IT管理费用,并可得到专业服务。
一句话,选用CentOS还是RedHat,取决于你所在公司是否拥有相应的技术力量:
1、完全可以把CentOS理解为RedHatAS系列!它完全就是对RedHatAS进行改进后发布的,各种操作、使用和RedHat没有区别
2、CentOS完全免费,不存在像RedHatAS系列那样需要序列号的问题
3、CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat那样需要花钱购买支持服务
4、CentOS修正了许多RedHatAS的BUG
5、CentOS版本说明:
CentOS4.0等同于RedHatAS4
CentOS4.1等同于RedHatAS4U1
CentOS4.2等同于RedHatAS4U2
CentOS4.3等同于RedHatAS4U3
CentOS4.4等同于RedHatAS4U4
RedHat
Redhat有两大Linux产品系列:免费和收费
1)免费的FedoraCore系列
主要用于桌面版本,提供了较多新特性的支持。
RedHat公司的产品中,有RedHatLinux(如Redhat8、9)和针对企业发行的版本RedHatEnterpriseLinux,都能够通过网络FTP免费的获得并使用,但是在2003年的时候,RedHatLinux停止了开发,这也是为什么没有Redhat10的原因,它的项目有FedoraProject这个项目所取代,并以FedoraCore这个名字发行并提供普通用户免费使用。FedoraCore这个Linux发行版更新很快,大约半年左右就有新的版本出来,目前的版本是FedoraCore6,这个FedoraCore试验的韵味比较浓厚,每次发行都有新的功能被加入到其中,得到的成功结果将被采用道RHEL的发布中。虽说这样,频繁的被改进更新的不安定产品对于企业来说并不是最好的选择,大多数企业还是会选择有偿的RHEL产品。
2)收费的Enterprise系列
这个系列分成:AS/ES/WS等分支。RedHatEnterpriseLinux:redhat的企业版本,简写RHEL。包括如下版本:
1、RedHatEnterpriseLinuxAS
RedHat企业LinuxAS(AdvancedServer)是企业Linux解决方案中最高端的产品,它专为企业的关键应用和数据中心而设计。RedHat企业LinuxAS是唯一支持IBMi系列,p系列和z系列/S-390系统的产品。在IntelX86平台上,RedHat企业LinuxAS可以支持2个以上CPU和大于8GB的内存。
典型的RedHat企业LinuxAS应用环境如下:
数据库和数据库应用软件;WEB和中间件;CRM,ERP,SCM
2、RedHatEnterpriseLinuxESRedHat企业LinuxES(EntryServer)
为IntelX86市场提供了一个从企业门户到企业中层应用的服务器操作系统。它支持1-2CPU和小于8GB内存的系统。它提供了与RedHat企业LinuxAS同样的性能,区别仅在于它支持更小的系统和更低的成本。
典型的RedHat企业LinuxES应用环境如下:
公司WEB架构;网络边缘应用(DHCP,DNS,防火墙等);邮件和文件/打印服务;中小规模数据库和部门应用软件
3、RedHatEnterpriseLinuxWS
RedHat企业LinuxWS(Workstation)是RedHat企业LinuxAS和ES的桌面/客户端合作伙伴。RedHat企业LinuxWS支持1-2CPU的intel和AMD系统,是桌面应用的最佳环境。它包含各种常用的桌面应用软件(Office工具,邮件,即时信息,浏览器等),可以运行各种客户-服务器配置工具,软件开发工具和各种应用软件(例如EDA和Oil/Gas应用软件)。RedHat企业LinuxWs和服务器产品由同样的源代码编译而成,但它不提供网络服务功能(如DNS和DHCP),它只适合作客户端应用。
AS、ES、WS关系
AdvancedServer,缩写即AS。AS在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。AS主要版本2.x/3.x/4.x,也就是我们所说的AS3/AS4,每一个版本还有若干个升级,例如最早推出的AS4后,遇到了一些更新。此时就会发布AS4Update1,以后还会陆续有AS4Update2/Update3等出现简称AS4u1/AS4u2/AS4u3等。这和微软的发布形式也是非常类似的,微软的WindowsNT4从SP1出到SP6,Windows2000从SP1出到SP4等。AS这些Update版本所包含的主要程序包版本都有一定差别,最好不要混用,否则很容易出现问题。Prima和Plesk的安装包,对于各种发行版都有了针对性的设计在下载页面上,通常都会标识出来,支持哪些版本和哪些update的系统。
ES,是AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU,而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别,只在内核等少数软件包上有差异。AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本中。例如购买DELL服务器,搭配的Linux会是ES系列。如果要搭配AS系列,则需要多花数千元。
WS,是ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用。
Redhat的FedoraCoreLinux和EnterpriseLinux,都需要遵循GNU协议,即需要发布自己的源代码。所以,对于免费的FedoraCoreLinux,从Redhat网站上可以直接下载ISO刻盘,还能下载到SRPM的ISO,即程序包源码光盘。对于收费的EnterpriseLinux系列,是一款商业产品,所以网站上不能下载到ISO文件,需要购买正式授权方可。由于EnterpriseLinux也需要遵循GNU协议,故必须发布源代码。所以在Redhat的网站上,可以获得AS/ES/WS系列的SRPM源码ISO文件。这些文件可以被自由的下载,修改代码,重新编译使用。
CentOS
CommunityENTerpriseOperatingSystem的项目诞生,它的缩写既是CentOS。CentOS社区将Redhat的网站上的所有源代码下载下来,进行重新编译。重新编译后,由于AS/ES/WS是商业产品,必须将所有Redhat的Logo和标识改成自己的CentOS标识。比如将AS4原版的SRPM源码编译后,就成为了CentOS4.0。AS4Update1的源码编译后,就成为了CentOS4.1。AS4Update2的源码编译后,就成为了CentOS4.2。同理,CentOS的3.x/4.x都对应着相应的版本。
所以,CentOS就是Redhat的AS/ES/WS的免费版本。使用CentOS,可以获得和AS/ES相同的性能和感受。CentOS除了提供标准的编号1~4或者1~5的若干张ISO以外,还提供了最小化1CD的Server光盘。用Server光盘安装好的系统,就是一个最小化的Linux内核加上常用的httpd/MySQL等包,不包含Xwindows桌面等对于服务器无用的软件。
CentOS与REDHAT区别:
1.GPL就是Linux内核所采用的软件许可证,GPL的特点是:你拿人家的代码修改用了,必须把修改后的代码公布。
2.所有的Linux都是采用的GPL许可,GPL许可允许GPL软件卖钱,但必须公布源码,所以每个Linux发行版的代码都是全公开的,只是,使用这些代码的人必须也公开修改过的代码。
3.Redhat的代码是公开的,但是他的二进制RPM包更新却不免费,这并不违反GPL许可。于是开始有人想到了建立CentOS项目。
4.由于Redhat的源代码是公开的,所以CentOS项目的人拿来自己再编译,同样的代码,同样的编译器,编译出来的自然是同样的东西。只不过里面删除了Redhat的Logo以及相应信息,而核心的管理工具还是rpm,只是用一个免费的软件包管理器yum(yellowdogupdatemanager)替代了Redhat中的up2date,up2date更新是连接到Redhat的收费服务站点的,通过钱买来的服务代码通过认证。
5.CentOS的使用者众多,因为世界范围内很多人想使用Redhat却有苦恼于Redhat的收费服务。现在CentOS在Linux发行版中排行前10,这个网页的第10个发行版本就是CentOS:TopTen
6.从品质上来说,CentOS从理论上应该跟Redhat一样的,毕竟是同样的源码。
上面的6点足够说明CentOS了。
什么是FreeBSD:
FreeBSD是个完整的系统,所有ls、cd这样的小命令都是自己的项目组开发的,而Linux发行版本其实是下载一个Linux内核,下载GNU的Coreutils(包括了常用的核心小命令),自己定制的系统。你应该记得,前些天,我还自己手动编译了一套系统。FreeBSD是从4.4BSD演变过来的Unix-Like操作系统,并不是也使用Linux内核。
FreeBSD使用的软件许可证是BSDL,BSDL的特点是:你可以免费使用我的代码,基于我的代码修改后的代码你不必公开,使用我的代码出了问题你不要告我(原:don’tpayme,don’tsueme)。很多喜欢BSDL的人主要是因为他们认为只要代码能得到最大幅度的利用就是最好的,不象GPL,用了代码还要还。所以很多网络设备以及一些商业公司都赞助FreeBSD的开发,这是个完全免费的软件项目:.org
搭建MySQL三节点集群实现高可用性mysql三台机群集
搭建MySQL三节点集群:实现高可用性
MySQL是一种非常流行的关系型数据库管理系统,它通常用于Web应用程序的后端数据存储。在生产环境中,由于数据库的重要性,我们需要确保MySQL的高可用性,以避免出现单点故障导致的系统宕机。为了实现高可用性,我们可以搭建一个MySQL三节点集群,本文将介绍如何进行搭建。
1.配置环境
在搭建MySQL三节点集群之前,我们需要先配置环境。在本文中,我们将使用三个虚拟机分别作为三个MySQL节点。每个节点都需要运行相同的Linux发行版,并安装相同版本的MySQL。在本文中,我们将使用CentOS 7作为Linux发行版,MySQL 5.7作为数据库软件。
2.创建MySQL用户和组
在每个节点上,我们需要创建一个MySQL用户和一个MySQL组,使得我们可以以此用户的身份运行MySQL服务器进程。
# groupadd mysql
# useradd-r-g mysql-s/bin/false mysql
3.配置防火墙
为了保证节点之间可以通信,我们需要在每个节点上开启MySQL服务所需要的端口号。在本文中,我们将使用3306端口。
# firewall-cmd–zone=public–add-port=3306/tcp–permanent
# firewall-cmd–reload
4.安装MySQL
我们需要在每个节点上安装MySQL 5.7。
# yum install mysql-server
安装完成后,启动MySQL服务并设置开机自启。
# systemctl start mysqld.service
# systemctl enable mysqld.service
5.配置主节点
选择其中一个节点作为主节点,并进行以下配置。
5.1配置my.cnf文件
我们需要打开MySQL主配置文件my.cnf并进行以下配置。
# vim/etc/my.cnf
在[mysqld]段中添加以下内容:
server-id=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-do-db=db_name
max-connections=10000
innodb_flush_log_at_trx_commit=2
sync_binlog=1
innodb_buffer_pool_size=8G
innodb_log_file_size=2G
注意:将log_bin参数设置为mysql-bin,以便MySQL可以将数据写入二进制日志;将server_id参数设置为1,以便MySQL可以将与其他节点的数据进行区分;将binlog-do-db参数设置为您要在节点上运行的数据库名称;将max_connections参数设置为您希望在节点上打开的最大连接数。
5.2创建主节点的复制用户
我们需要创建一个复制用户以便从节点可以连接到主节点并复制数据。
mysql> CREATE USER‘replication’@’%’ IDENTIFIED BY‘password’;
mysql> GRANT REPLICATION SLAVE ON*.* TO‘replication’@’%’;
注意:将password设置为一个安全的密码,并确保在从节点上使用相同的用户名和密码进行复制。
5.3重启MySQL服务
我们需要重启MySQL服务以使更改生效。
# systemctl restart mysqld.service
6.配置从节点
在剩余节点上,我们需要进行以下配置。
6.1配置my.cnf文件
我们需要打开MySQL主配置文件my.cnf并进行以下配置。
# vim/etc/my.cnf
在[mysqld]段中添加以下内容:
server-id=2
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
注意:将server_id参数设置为此节点的唯一标识符。将relay-log参数设置为mysql-relay-bin,以便MySQL可以将数据写入中继日志。
6.2启动从节点并连接到主节点
我们需要启动MySQL服务并连接到主节点。
# systemctl start mysqld.service
mysql> CHANGE MASTER TO
MASTER_HOST=’master_ip’,
MASTER_USER=’replication’,
MASTER_PASSWORD=’password’,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=4;
注意:将master_ip替换为主节点的IP地址;将password替换为复制用户的密码;将master_log_file和master_log_pos设置为主节点上的二进制日志文件和位置。
6.3开始复制
我们需要在从节点上开始复制数据。
mysql> START SLAVE;
7.测试集群
我们可以在主节点上创建新的数据库和数据表,并在从节点上验证数据是否被正确复制。如果一切正常,则集群已成功搭建。
总结
通过搭建MySQL三节点集群,我们可以在生产环境中实现数据库的高可用性,以避免出现单点故障导致的系统宕机。在搭建过程中,我们需要配置环境、创建MySQL用户和组、配置防火墙、安装MySQL、配置主节点和从节点,并在最后测试集群。
CentOS7.0如何启动多个MySQL实例教程(mysql-5.7.21)
配置说明
Linux系统:CentOS-7.0
MySQL版本:5.7.21
Linux系统下启动多个MySQL实例,目前知道有两种方法,一种是通过官方提供的mysqld_multi.server来实现,但是我现在还没研究这种方法是怎么做的;另一种就是通过安装多个MySQL服务器的原始方法实现。我现在是通过第二种方法实现的。成功启动2个MySQL实例。接下来介绍一下操作过程,请多指教。
一、安装第一个MySQL(5.7.21)服务器
首先说明下我是用二进制包安装mysql的:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
1、获取mysql二进制包,然后通过 tar命令解压,通过mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql_3306命令将解压的文件夹进行重命名成较短的名称,备注要使用的端口号,便于区分。至于要将解压后的文件放在哪里,你自己决定,区别是,如果你不是将解压文件命名成mysql后直接放到/usr/local目录下,或者通过ln在/usr/local目录下使用mysql引用的话,你需要在my.cnf或者启动命令参数中指定(basedir=实际的解压文件路径和 datadir=实际的结业文件路径/data)。这个说明其实在mysql.server中,可以使用vi命令打开看一下。
2、看了网上很多mysql的安装方法介绍,都会提到新增用户组、用户:groupadd mysql和useradd-r-g mysql-s/bin/false mysql,增加了mysql用户和mysql用户组。这个看你自己实际需要,因为我就是自己用,没有安全问题,就没有新增,而是直接用root。如果需要新增用户和用户组,可以网上查找资料或者在MySQL的官方手册中看到:
3、新建my.cnf或者从别处复制一份过来,主要是在初始化文件中指定basedir、datadir、端口号以及socket等参数,下图是我的my.cnf内容,请根据自己的实际路径替换相关参数,放在安装目录下:
4、按照官方文档的安装步骤,还需要在安装目录下新建一个mysql-files文件夹,具体为什么要新建这个文件夹我还不是很清楚,哈哈,给出官方文档的内容“The mysql-files directory provides a convenient location to use as the value for the secure_file_priv system variable, which limits import and export operations to a specific directory.”
5、接下来初始化mysql,首先在安装目录下新增data文件夹,然后进入到安装目录的bin文件夹下面,执行以下命令:“./mysqld--initialize--user=root--basedir=/data/program/mysql3306--datadir=/data/program/mysql3306/data”。在linux中,命令带参数时,如果参数名是全称,就用两个横杠“--”,如果参数时简称,就用一个横杠“-”,比如,./mysql--host=localhost和./mysql-hlocalhost。在上述初始化mysql的命令中,请把参数值替换成你自己的路径和用户。如果你只安装一个mysql,并且是在/usr/local/mysql这个默认目录,就不需要指定basedir和datadir参数。如果你因为某种原因想要重新初始化,那么你需要先把data目录下的内容删掉,你可以选择删除整个data文件夹然后新增:rm-rf data, mkdir data,然后你再执行上面的初始化命令,就可以顺利重新初始化。这里需要注意的是,初始化成功之后,会在提示信息的末尾找到默认密码,一定要记住了,一会儿客户端登入的时候要用。
6、接下来创建安全传输所需的证书和key,在bin目录下执行命令:“./mysql_ssl_rsa_setup--datadir=/data/program/mysql3306/data”,同样,将参数替换成你的值,默认的安装目录不需要指定datadir值。这个命令的作用官方说明如下:“This program creates the SSL certificate and key files and RSA key-pair files required to support secure connections using SSL and secure password exchange using RSA over unencrypted connections, if those files are missing.”,大概是说通过这个命令创建了在非加密连接上使用SSL和RSA进行安全传输所需的SSL证书和key,RSA键值对。
7、到此mysql的初始化就完成了,可以启动mysql服务器了,5.7版本以后好像都是使用mysqld_safe命令启动服务的,也可以使用support-file目录下的mysql.server来启动,不过mysql.server也是使用mysqld_safe来启动的。mysqld_safe的命令如下:“./mysqld_safe--defaults-file=/data/program/mysql3306/my.cnf--user=root--port=3306&”,关键的是要指定my.cnf路径,因为我没有安装在默认目录下,而且我们是要在一个机器上安装两个mysql的。这里面要注意的是“--defaults-file”一定要作为第一个参数,不然会报错,有相应提示;另外就是命令末尾的“&”,这个是告诉系统将mysql这个实例作为后台进程,这样退出命令的时候mysql服务器才能继续运行。
关于mysql_safe命令的详细参数可以参考://www.gxlcms.com/article/52259.htm
8、启动服务器之后,就可以使用客户端访问服务器了,在bin目录下执行命:“./mysql-uroot-P3306-p”,然后提示输入密码,那么你就把步骤5中的默认密码输入。进去之后,通过命令set password=password('new password')设置你的新密码,否则服务器也不会让你操作其他东西。
9、至此,已经完成一个mysql的安装。
二、安装第n个MySQL(5.7.21)服务器
有了上面的安装过程,基本上安装第n个mysql是跟上面的一样,解压安装包,重命名为mysql_port,通过端口号区分不同的mysql服务器,然后将my.cnf以及上面所执行的命令中,有关路径的参数都替换成相应的路径,就可以了。通过制定具体路径的方式,就可以实现一个linux机器下安装并启动多个mysql实例。在客户端访问服务器时,需要制定哪个端口,用参数-P3306,大写的P。
这是只一个简单安装过程的记录和学习,mysql还有很多配置和功能需要注意,后续有机会整理一下。
总结