centos7 + mysql5.7 + jemalloc5.0.1 安装流程

最新换服务器,所以打算重新配置一下环境 用最新稳定版的软件,所以这些配置都是生产环境下用的至于效果怎么样,只能等待后续的验证了

版本信息

centos版本:CentOS Linux release 7.3.1611 (Core) 

mysql版本:mysql-5.7.18

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18.tar.gz

内存管理jemalloc版本:5.0.1

https://github.com/jemalloc/jemalloc/releases

下载地址:https://github.com/jemalloc/jemalloc/archive/5.0.1.tar.gz

准备mysql需要的文件

mysql需要这个(mysql5.7最高支持到boot1.59):https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

PS:第一次想的是用boost最新的(1.64)最后mysql提示只支持到1.59

准备文件如下:

开始安装

1.移除已经安装的mysql和boost

1
2
3
4
 rpm -qa | grep mysql
 rpm -qa | grep boost
 yum -y remove boost-*
 rpm -e --nodeps boost-filesystem-1.41.0-11.el6_1.2.x86_64

由于没用安装上面两项所以就不用移除了。如果有可以用上面的命令移除

2.安装编译依赖

1
yum install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl automake autoconf libtool make

3.下载boost 解压并移动到/usr/local/boost

1
2
3
   wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
   tar zxvf boost_1_59_0.tar.gz 
   mv boost_1_59_0 /usr/local/boost

PS:只需要移动就行了,不需要编译,这个在安装mysql的时候有mysql自己进行编译,我们不需要画蛇添足

4.解压、安装jemalloc5.01

tar zxvf 5.0.1.tar.gz

cd jemalloc-5.0.1/

里面没用configure 这里需要先执行 autogen.sh 生成 configure文件


编译安装:

1
2
3
./configure --libdir=/usr/local/lib
make
make install

在最后 make install时出现如下错误

提示文件不存在,创建之后还是会提示doc/jemalloc.3不存在,统一解决方法:

1
2
3
4
5
touch doc/jemalloc.html
touch doc/jemalloc.3
make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig

到此 jemalloc-5.0.1 安装成功

 

5.添加mysql用户和用户组

添加之前先检测下是否已经添加。

1
2
3
4
5
6
7
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
 
##-r是标识系统用户 可以通过useradd --help查看
##-r, --system                  create a system account
groupadd mysql
useradd -r -g mysql mysql

6.解压并进入mysql源码目录

1.创建需要的目录

mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/logs
mkdir /usr/local/mysql/pids

chown -R mysql:mysql /usr/local/mysql

2.开始编译Cmake make make install:

1
2
3
4
5
6
7
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" -DWITH_SAFEMALLOC=0
 
make
 
make install
 
##这里说一下,我再编译过程中使用 make -j4 使用多核编译,每次编译到 Built target sql_embedded 都会出错停止。

3.拷贝mysql.server 到 /etc/init.d

1
2
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld

4.编辑/etc/my.cnf

1
2
3
4
5
6
7
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock  #这个一定要指定一下不然再某些情况下PHPPDO可能链接不是mysql(比如YII2)
symbolic-links=0
log-error=/usr/local/mysql/logs/mysqld.log
pid-file=/usr/local/mysql/pids/mysqld.pid

5.修改环境变量 vim /etc/profile

再文件最后加上:

1
2
PATH=/usr/local/mysql/bin:$PATH
export PATH

6.初始化数据库

1
2
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#如果改成 --initialize 则会生成一个随机密码

7.设置mysql开机启动

1
chkconfig mysqld on

8.启动mysql

1
/etc/init.d/mysqld start

9.登陆MySQL (上面使用的是无密码初始化所以登陆不需要密码)

1
mysql -uroot

10.修改mysql密码 (mysql5.7并没用Password字段所以直接)

1
alter user 'root'@'localhost' identified by 'root';

未经允许不得转载:开心乐窝-乐在其中 » centos7 + mysql5.7 + jemalloc5.0.1 安装流程

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏