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 root@localhost: _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 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/libjemalloc.so@' /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;

猜你喜欢

转载自www.cnblogs.com/knmax/p/9211450.html