这是一篇填坑之作,作为我个人blog的第四篇博文,里面提及到了源码编译安装mysql,但是没有详细写,我经过一段时间的研究和摸索,探究出了在centos7上面编译安装mysql的通用方法(里面没有涉及到mysql编译调优),望大家喜欢这篇文章。
===============分割线===============
一.编译前的准备
1.安装相关的软件
yum -y install cmake gcc-c++ g++
2.安装相关依赖
yum -y install ncurses ncurses-devel openssl-devel bison
3.下载源代码包文件
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
tar -zvxf mysql-5.7.19.tar.gz
二.编译
cd mysql-5.7.19
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_DATADIR=/var/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=/root/boostst
等待cmake完成后,执行
make
make install
三.安装mysql服务
1.创建mysql用户与mysql用户组
cat /etc/group | grep mysql //查看是否存在mysql用户组
cat /etc/passwd | grep mysql //查看是否存在mysql用户
groupadd mysql //创建用户组
useradd -r -g mysql -s /sbin/nologin -M mysql //创建用户
2.移动(重命名)my.cnf文件
mv /etc/my.cnf /etc/my.cnf-`date +%F`
2.1 (将mysql服务加入开机自启动文件夹)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
3.将MySQL数据库的动态链接库共享至系统链接库,这样MySQL服务就可以被其它服务调用了
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
4.加入运行环境
echo pathmunge /usr/local/mysql/bin after > /etc/profile.d/mysql.sh
. /etc/profile
5开机启动
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
6查看mysql开机启动项
chkconfig --list mysqld
7初始化库
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/var/mysql/data
8启动(使用8.1或者82都可以)
/etc/init.d/mysqld start ##8.1
service mysqld restart ##8.2
四.使用测试
在使用以及测试的时候 ,mysql的root是没有密码的,你可以先mysql -uroot进入mysql,然后进行更改密码进行使用。
===============分割线===============
1.对于cmake的说明:
CMake是一个跨平台的编译安装工具,可以用简单的语句来描述所有平台的编译安装过程。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的资源列表文件取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构(make)方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
2. cmke的各个参数的说明
DCMAKE_INSTALL_PREFIX ##指定安装目录
DDEFAULT_CHARSET ##默认字符集
DMYSQL_DATADIR ##数据的存储目录
DINSTALL_PLUGINDIR ##插件安装目录
DWITH_INNOBASE_STORAGE_ENGINE##指定存储引擎
DDEFAULT_COLLATION ##指定默认编码格式以及排序
DENABLE_DEBUG_SYNC ## bug调试同步支持
DENABLED_LOCAL_INFILE ##本地加载数据文件
DENABLED_PROFILING ## 查询分析代码
DWITH_ZLIB ## zlib支持类型
DWITH_EXTRA_CHARSETS ##指定额外字符集
DMYSQL_MAINTAINER_MODE ## MySQL维护特定的开发环境
DEXTRA_CHARSETS ##字符集
DWITH_PERFSCHEMA_STORAGE_ENGINE ## 将存储引擎PERFSCHEMA静态编译成服务器
DDOWNLOAD_BOOST ##下载boost库
DWITH_BOOST ##本地boost库的存储位置
DMYSQL_TCP_PORT ##端口号
官方翻译文档
文章评论