Percona Server 5.7 源码安装
Posted knmax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Percona Server 5.7 源码安装相关的知识,希望对你有一定的参考价值。
Percona-Server 简介
Percona Server是由领先的mysql咨询公司Percona发布。Percona Server是一款独立的数据库产品,为用户提供了换出其MySQL安装并换入Percona Server产品的能力。通过这样做,就可以利用XtraDB存储引擎。Percona Server声称可以完全与MySQL兼容,因此从理论上讲,您无需更改软件中的任何代码。这确实是一个很大的优势,适合在您寻找快速性能改进时控制质 量。因此,采用Percona Server的一个很好的理由是,利用XtraDB引擎来尽可能地减少代码更改。
此外,他们是XtraDB存储引擎的原作者。Percona将此代码用作开源代码,因此您可以在其他产品中找到它,但引擎的最初创建者与编写此产品的是同一个人,所以您可以随心所欲地使用此信息。
下面是Percona Server的声明,该声明来自它们自己的网站:
可扩展性:处理更多事务;在强大的服务器上进行扩展
性能:使用了XtraDB的Percona Server速度非常快
可靠性:避免损坏,提供崩溃安全(crash-safe)复制
管理:在线备份,在线表格导入/导出
诊断:高级分析和检测
灵活性:可变的页面大小,改进的缓冲池管理
Percona团队的最终声明是“Percona Server是由Oracle发布的最接近官方MySQL Enterprise发行版的版本”,因此与其他更改了大量基本核心MySQL代码的分支有所区别。Percona Server的一个缺点是他们自己管理代码,不接受外部开发人员的贡献,以这种方式确保他们对产品中所包含功能的控制。
准备环境及软件包
系统环境:
# uname -r
3.10.0-327.el7.x86_64
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# getenforce
Disabled
下载软件包:
# wget https://www.percona.com/downloads/Percona-Server-5.7/Percona-Server-5.7.13-6/source/tarball/percona-server-5.7.13-6.tar.gz
# wget https://github.com/jemalloc/jemalloc/releases/download/4.2.1/jemalloc-4.2.1.tar.bz2 (内存管理优化)
# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz (MySQL5.7以后必须要的,只能是1.59版本)
# wget http://zlib.net/zlib-1.2.8.tar.gz
创建mysql运行用户安装相关依赖包:
# useradd -u 8000 -s /sbin/nologin -M mysql
# mkdir -p /data/mysql
# yum -y install gcc gcc-c++ ncurses ncurses-devel wget bzip2 openssl openssl-devel cmake bison zlib-devel
安装zlib:
# tar -xf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure --prefix=/usr/local/zlib
# make && make install
安装jemalloc:
# tar -xf jemalloc-4.2.1.tar.bz2
# cd jemalloc-4.2.1
# ./configure && make && make install
# echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
# ldconfig
安装boost:
# mkdir /usr/local/boost
# cp boost_1_59_0.tar.gz /usr/local/boost/
编译安装percona-server
编译:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/run/mysql.sock -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_DEBUG=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_MAINTAINER_MODE=0 -DWITH_EDITLINE=bundled -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DZLIB_LIBRARY:FILEPATH=/usr/local/zlib/lib/ -DZLIB_INCLUDE_DIR:PATH=/usr/local/zlib/include/ -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost
编译报错:
-- Download failed, error: 7;"Couldn't connect to server"
-- To enable google test, please download http://googlemock.googlecode.com/files/gmock-1.7.0.zip to the directory /root/source/percona-server-5.7.13-6/source_downloads
-- If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80
解决报错:
本来编译过程可以自动下载这个包,被墙了,没办法只能手动下载包了
# cd source/percona-server-5.7.13-6/source_downloads/ 进入此目录下载
# wget https://github.com/google/googlemock/archive/release-1.7.0.zip
# mv release-1.7.0.zip gmock-1.7.0.zip
安装
重新编译遍
# make -j 8
# make install
初始化配置Percona-server
初始化
# chown -R mysql.mysql /usr/local/mysql/
# chown -R mysql.mysql /data/
# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
(初始化时注意屏幕输出的信息,里面随机生成了一个root密码)
2016-08-16T07:01:38.006283Z 1 [Note] A temporary password is generated for [email protected]: _gGy5%9#x5Hu
配置启动脚本等
# mv /etc/my.cnf /etc/my.cnf.bk
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
# sed -i '/^[mysqld]/adatadir = /data/mysql' /etc/my.cnf
# sed -i '/^[mysqld]/abasedir = /usr/local/mysql' /etc/my.cnf
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig mysqld on
# sed -i '[email protected] [email protected] mysqld_safe
export LD_PRELOAD=/usr/local/lib/[email protected]' /usr/local/mysql/bin/mysqld_safe
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
# ldconfig
# vim /etc/my.cnf
socket = /run/mysql.sock
pid-file = /run/mysql.pid
启动数据库修改root密码
# chown -R mysql /run/ 要不然创建不了sock,pid文件
# /etc/init.d/mysqld restart
# mysql -uroot -p'_gGy5%9#x5Hu'
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
mysql> flush privileges;
以上是关于Percona Server 5.7 源码安装的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu Server 16.04 安装 Percona Server 5.7 来代替 MySQL 或 MariaDB详细教程
CentOS 7 安装 Percona XtraDB Cluster 5.7