最新换服务器,所以打算重新配置一下环境 用最新稳定版的软件,所以这些配置都是生产环境下用的至于效果怎么样,只能等待后续的验证了
版本信息
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 |
提示文件不存在,创建之后还是会提示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 安装流程