centos mysql 5.6 源码,centos官网

大家好,今天小编来为大家解答centos mysql 5.6 源码这个问题,centos官网很多人还不知道,现在让我们一起来看看吧!

mysql pxc程序要做哪些修改

PXC简介

Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法。

1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。

2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。

3.每个节点都包含完整的数据副本。

PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使用了Galera library,一个通用的用于事务型应用的同步、多主复制插件)。

PXC特性:

1,同步复制,事务要么在所有节点提交或不提交。

2,多主复制,可以在任意节点进行写操作。

3,在从服务器上并行应用事件,真正意义上的并行复制。

4,节点自动配置,数据一致性,不再是异步复制。

PXC劣势:

1、当前版本(5.6.20)的复制只支持InnoDB引擎,其他存储引擎的更改不复制。然而,DDL(Data Definition Language)语句在statement级别被复制,并且,对mysql.*表的更改会基于此被复制。例如CREATE USER...语句会被复制,但是 INSERT INTO mysql.user...语句则不会。(也可以通过wsrep_replicate_myisam参数开启myisam引擎的复制,但这是一个实验性的参数)。

2、PXC集群一致性控制机制,事有可能被终止,原因如下:集群允许在两个节点上同时执行操作同一行的两个事务,但是只有一个能执行成功,另一个会被终止,集群会给被终止的客户端返回死锁错误(Error: 1213 SQLSTATE: 40001(ER_LOCK_DEADLOCK)).

3、写入效率取决于节点中最弱的一台,因为PXC集群采用的是强一致性原则,一个更改操作在所有节点都成功才算执行成功。

原理描述

分布式系统的CAP理论:

C一致性,所有的节点数据一致

A可用性,一个或者多个节点失效,不影响服务请求P分区容忍性,节点间的连接失效,仍然可以处理请求任何一个分布式系统,需要满足这三个中的两个安装部署

环境描述

三个node节点

node#1

hostname: percona1

IP: 192.168.100.7

node#2

hostname: percona2

IP: 192.168.100.8

node#3

hostname: percona3

IP: 192.168.100.9

基础环境包

可以选择源码或者yum,在此使用yum安装。

三个node节点都要执行以下操作。

基础环境

yum-y groupinstall Base Compatibility libraries Debugging Tools Dial-up Networking suppport Hardware monitoring utilities Performance Tools Development tools组件安装

yum install install Percona-XtraDB-Cluster-55-y

数据库配置

选择一个node作为名义上的master,咱们以node1为master,以下操作只在node1上执行。

只需要修改mysql的配置文件--/etc/my.cnf

说明:这里的IP地址是内网地址。

[root@i-kysyolko~]# cat/etc/my.cnf

# Template my.cnf for PXC

# Edit to your requirements.

[mysqld]

datadir=/var/lib/mysql

user=mysql

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW

# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB

# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2

# Node#1 address

wsrep_node_address=192.168.100.7

# SST method

wsrep_sst_method=xtrabackup-v2

# Cluster name

wsrep_cluster_name=my_centos_cluster

# Authentication for SST method

wsrep_sst_auth="sstuser:s3cret"

[mysqld_safe]

pid-file=/run/mysqld/mysql.pid

syslog

!includedir/etc/my.cnf.d

启动数据库

CentOS6:/etc/init.d/mysql bootstrap-pxc

CentOS7:systemctl start mysql@bootstrap.service配置数据库

mysql> show status like'wsrep%';

+----------------------------+--------------------------------------+| Variable_name| Value|

+----------------------------+--------------------------------------+| wsrep_local_state_uuid| c2883338-834d-11e2-0800-03c9c68e41ec|...

| wsrep_local_state| 4|

| wsrep_local_state_comment| Synced|

...

| wsrep_cluster_size| 1#主要看这里|

| wsrep_cluster_status| Primary|

| wsrep_connected| ON|

...

| wsrep_ready| ON|

+----------------------------+--------------------------------------+40 rows in set(0.01 sec)

#数据库用户名密码的设置

mysql@percona1> UPDATE mysql.user SET password=PASSWORD("Passw0rd") where user='root';#创建、授权、同步账号

mysql@percona1> CREATE USER'sstuser'@'localhost' IDENTIFIED BY's3cret';mysql@percona1> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON*.* TO'sstuser'@'localhost';mysql@percona1> FLUSH PRIVILEGES;

node2、node3节点配置

接下来进行其它节点的配置,上面的组件都已经安装完成。现在直接进行数据库的配置。

只需要修改第26行,当前node的IP地址。两个node都是只是修改这个地址即可。

wsrep_node_address=192.168.100.8

[root@i-kysyolko~]# cat/etc/my.cnf

# Template my.cnf for PXC

# Edit to your requirements.

[mysqld]

datadir=/var/lib/mysql

user=mysql

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW

# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB

# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2

# Node#1 address

wsrep_node_address=192.168.100.8

# SST method

wsrep_sst_method=xtrabackup-v2

# Cluster name

wsrep_cluster_name=my_centos_cluster

# Authentication for SST method

wsrep_sst_auth="sstuser:s3cret"

[mysqld_safe]

pid-file=/run/mysqld/mysql.pid

syslog

!includedir/etc/my.cnf.d

启动数据库

CentOS6:/etc/init.d/mysql start

CentOS7:systemctl start mysql.service

说明:

1、除了名义上的master之外,其它的node节点只需要启动mysql即可。

2、节点的数据库的登陆和master节点的用户名密码一致,自动同步。所以其它的节点数据库用户名密码无须重新设置。

测试

在任意一个node上,进行操作,然后去其它的节点上看是否取得相同的结果

如何用cloudera manager接管已有hadoop的cdh版本集群

本文介绍如何搭建cloudera manager去接入已有hadoop组件(cdh),搜索国内资料并无整体介绍,没有任何参考文章可以借鉴;通过大数据qq交流群当中某老师提供的国外某篇cloudera cto的文章得到解决思路,经实验调试可以实现此功能。

下面进入本文主题。

一、下载必备文件:

1.cloudera manager:

大部分公司内大数据集群环境都无公网访问权限,针对当前集群系统环境和想要接入的cm版本找到对应版本离线包,对于redhat、centos系统来说el6就是redhat6、centos6系统,之后找到想要安装的cm版本,本文搭建过程采用cloudera-manager-el6-cm5.9.0_x86_64.tar.gz

2.cdh安装包:

本搭建过程采用CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel、CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1,parcel文件为cdh压缩包,执行安装过程会进行解压并且上传到各节点;sha1文件内为压缩包的校验码

3.mysql的jdbc驱动jar包:

4.mysql5.6:

本搭建过程采用mysql5.6社区版源码包mysql-5.6.35.tar.gz

二、cloudera manager安装:

1.server端安装配置mysql5.6:

解压mysql安装包后执行

1 yuminstallcmakencurses-*-y

其余看编译输出,缺少什么包就再yum安装什么

进入mysql解压目录,执行

12 cmake-DCMAKE_INSTALL_PREFIX=/export/mysql5.6make&&makeinstall

如果没有报错继续执行

顺利执行过后将/etc/my.cnf删除或移走,在mysql安装目录当中简单编写my.cnf并启动,具体配置请根据自身环境进行设置,本文不对此内容赘述

2.解压cloudera-manager-el6-cm5.9.0_x86_64.tar.gz到安装目录:

默认cloudera和cm-5.9.0目录放置在/opt下,如果想放在其他目录须留意对应配置

3.导入数据,执行完成后会有cm库:

1/export/tmp/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.shmysqlcm-hlocalhost-uroot--scm-host127.0.0.1scmscmscm

4.登录mysql,进行必要的修改配置:

12 setglobalbinlog_format='ROW';grantallon*.*to'scm'@'%'identifiedby'scm';

否则默认binlog格式为statement,cm会启动报错

对scm进行所有主机的授权

5.cloudera manager server端配置:

创建用户

1 useradd--system--home=/opt/cm-5.9.0/run/cloudera-scm-server/--no-create-home--shell=/bin/false--comment"clouderaSCMuser"cloudera-scm

在之前的cloudera目录下创建parcel-repo目录,将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel和CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1放在此目录下,重命名sha1文件为sha,否则cm找不到sha文件无法进行校验,会重新去公网上下载压缩包

1 mvCDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha

6.mysql jar包放入lib库:

将解压mysql-connector-java-5.1.40.tar.gz得到的文件放在/opt/cm-5.9.0/share/cmf/lib下

7.配置db连接信息:

1 vim/opt/cm-5.9.0/etc/cloudera-scm-server/db.properties

host由于mysql就装在本机所以写127地址即可,库名、用户名、密码遵循上面创建用户和授权的内容进行填写

8.配置cm启动脚本的java环境:

123 vim/opt/cm-5.9.0/etc/init.d/cloudera-scm-agentvim/opt/cm-5.9.0/etc/init.d/cloudera-scm-serverexportJAVA_HOME=/usr/java/jdk1.7.0_51

9.agent配置:

1 vim/export/tmp/opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini

server_host配置server端的ip或者主机名

server_port和port没有修改,使用默认的即可

listening_ip可以不做修改

之后将/opt/cm-5.9.0此目录拷贝到其他agent节点的对应目录

注:须确保/opt/cm-5.9.0/lib/cloudera-scm-agent下的uuid文件删掉,否则会出现cm web中主机显示冲突的情况

10.启动服务:

server端执行

1/opt/cm-5.9.0/etc/init.d/cloudera-scm-serverstart

agent端执行

1/opt/cm-5.9.0/etc/init.d/cloudera-scm-agentstart

server端启动端口7180 7182

agent端启动端口9000

三、web配置:

1.添加cloudera management service:

浏览器访问server端地址的7180端口,用户名密码默认admin admin

登录后不按照提示进行安装,直接点击左上方主页,然后选择右边添加管理服务

填入管理员登录mysql的连接信息即可

审核更改页不用做任何更改

之后等待安装完成,安装过后会发现集群监控已经有数据,点选所有主机,检查所有主机检查各节点状态

回到主页,点击cluster1右侧的添加服务

2.添加hdfs服务:

选择hdfs继续,根据原有集群情况进行主机选择

审核更改部分可以根据现有集群配置进行填写,左侧会有对应参数名

需要注意的是,datanode数据目录不管原来所有者是谁必须要修改为hdfs,否则无法通过cm启动,并且原有集群对应进程要先停掉

点击继续后不要等待进程进行,直接返回主页,会发现hdfs集群角色已经添加

进入hdfs配置journalnode目录dfs.journalnode.edits.dir

之后启动集群,观察监控数据

注:其余hadoop组件接入原则也是停掉原有进程,修改对应目录属主为组件名称的用户,比如hdfs,yarn,同时修改cm上对应的关键配置。此种做法对程序环境改造很大,很多标准必须遵循cloudera manager的规则,而且有丢失hdfs元数据风险。

四、后记:

此次搭建cm集群遇到一些问题,比如添加hdfs角色后无法启动namenode,报错java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 16,可能数据不连续,通过hadoop namenode-recover命令进行修复后可以启动,此命令不敢保证在生产环境执行没有问题;又或者datanode无法启动,遇到以下报错Operation not permitted

之后发现原集群的对应目录所有者为hadoop,而根据其他角色启动进程的所有者hdfs来进行权限修改后datanode可以启动

linux 怎么用cmake安装mysql

方法/步骤

1

在安装mysql数据库服务器前,确保你的linux系统是可以连接网络的,下面我们将通过源码方式来安装mysql首先通过putty登入进你的Linux系统,确保系统中已经安装的gcc c++等编译环境,因为mysql从5.5版本开始是使用cmake编译的,如果三个环境都没安装,可以使用下面的命令进行安装:yum-y install make gcc-c++ cmake bison-devel ncurses-devel

2

查找系统里是否已经安装了mysql数据库的相关组件,使用命令:rpm-qa| grep mysql进行查找,如果查找到,可以使用下面命令进行强制卸载:rpm-e--nodeps包名

如果你当时在安装Linux系统时,使用的默认的安装选项,这一步可以跳过;

3

然后我们来下载mysql的源码安装包,使用下面的命令来下载wget 下载的时间可能有点漫长,请耐心等待;

4

下载完成后,使用命令: ll可以查看当前目前下存在 mysql-5.6.24.tar.gz文件然后使用下面的命令解压压缩包:tar-zxvf mysql-5.6.14.tar.gz

然后使用命令: ll可以查看当前目前下存在 mysql-5.6.24目录使用命令:cd mysql-5.6.24切换到 mysql-5.6.24这个目录下;

上面的步骤完成后,下面我们来开始编译mysql文件了,首先配置编译的相关参数,执行如下命令:cmake\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\-DMYSQL_DATADIR=/usr/local/mysql/data\-DSYSCONFDIR=/etc\-DWITH_MYISAM_STORAGE_ENGINE=1\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_MEMORY_STORAGE_ENGINE=1\-DWITH_READLINE=1\-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock\-DMYSQL_TCP_PORT=3306\-DENABLED_LOCAL_INFILE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DEXTRA_CHARSETS=all\-DDEFAULT_CHARSET=utf8\-DDEFAULT_COLLATION=utf8_general_ci

接着使用 make&& make install来编译并安装mysql也可以分两步来执行:先运行 make,完成后再运行 make install整个过程大概需要30分钟左右,请耐心等待,这段时间你可以做点别的事

安装完成后,我们还要建立mysql的配置,首先设置mysql的访问权限,使用命令查看是否已经存在mysql用户及用户组,查看用户列表命令:cat/etc/passwd查看用户组列表命令:cat/etc/group

如果不存在,我们就要创建:添加用户组命令:groupadd mysql添加用户:useradd-g mysql mysql然后来修改之前安装的mysql所在目录的访问的用户及用户组输入命令:chown-R mysql:mysql/usr/local/mysql

然后是初始化mysql配置,切换到mysql安装目录:cd/usr/local/mysql执行初始化配置脚本,创建mysql自带的系统数据库:./scripts/mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data--user=mysql

修改mysql配置文件,输入命令:vi my.cnf然后按键盘的"insert"键,然后通过键盘的方向键来移动光标到要修改的行,添加如下内容:server-id=1 report-port=3306 port=3306 datadir=/usr/local/mysql/datasocket=/var/lib/mysql/mysql.sock

这一步很重要,需要更改该配置文件的所有者:chown-R mysql:mysql/usr/local/mysql/my.cnf否则下面启动mysql服务会报错;

添加mysql到开机启动项,并启动mysql服务(注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会到你安装的mysql目录找,在本例中就是/usr/local/mysql/my.cnf。注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会可能会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。重命名的命令是:mv my.cnf my.cnf.bak)cp support-files/mysql.server/etc/init.d/mysqld#复制脚本 chmod+x/etc/init.d/mysqld#增加可执行权限 chkconfig--add mysqld#增加至sysV服务 chkconfig mysqld on#开机自启动service mysqld start#启动mysql服务netstat-aux|grep mysq#查看启动的mysql进程

添加mysql的环境变量,以方便以后的操作输入密码:vi/etc/profile在文件的底部添加如下内容:PATH=/usr/local/mysql/bin:$PATHexport PATH保存并退出,输入输入命令,使配置立即生效:source/etc/profile

安装好的mysql,默认root帐户帐户为空,下面我们来修改密码输入命令:mysql-uroot回车后,然后输入命令:SET PASSWORD= PASSWORD('123456');

设置完成后,输入命令:quit;退出mysql环境;

设置好 mysql密码,需要输入如下命令才能够正确登录进mysql:输入命令:mysql-uroot-p回车后,会提示你输入密码,输入正确并执行后,会看到以mysql>开始的提示行,在这里你可以输入任何有效的sql查询语句:比如输入:show databases;来显示所有的数据库,注意后面的分号不能丢失,它标识一行命令的结束。至此,恭喜你,mysql安装成功了。

阅读剩余
THE END