前言:前面博文有介绍rpm安装mysql,这里介绍一下源码安装mysql,是怎么去安装的呢?源码安装过后你会对mysql的安装和目录结构有一个重新的认识和理解。
一、下载源码包。
https://dev.mysql.com/downloads/mysql/5.7.html:
选择:
进入download下载:
选择免登录下载:

复制地址:

得到如下地址:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29.tar.gz 可以页面端之间下载,也可以借助迅雷工具下载,或者之间在linux上wget方式下载。将下载的源码包放在自己linux服务器上。
接下来就是安装的过程。二、安装前的环境准备。
在进行mysql源码安装之前,mysql5.6之前boost库不需要自己安装,但是在mysql5.6之后,需要安装boost库,而且boost库的版本不能太低了,因为这里安装是的mysql5.7.29所以需要boost的依赖。查看系统有没有安装boost库:
rpm -qa | grep boost

如果有,那么版本可以卸载了重新安装,如果没有需要安装boost库。(建议把系统自带的boost卸载)
卸载:yum -y remove boost-*

然卸载系统自带的mysql

如果有的话,可以卸载:rpm -e 包名
yum -y remove mysql-lib 这样删除的坏处是造成有的依赖没有了,比如crontab计划任务这个命令没有了,所以可以用rpm强制性删除:
rpm -e --nodeps mysql-libs-*

另外需要将yum源更换,cmake的版本不低于2.8。
(可以选择一块硬盘来给mysql安装。所以需要添加硬盘,分区,格式化,在此处省略。)
此处介绍安装的依赖包:
yum -y install gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* make cmake三、安装。
1、创建mysql的用户及用户组
创建用户组:groupadd mysql ----------添加一个mysql的组。
创建用户:useradd -g mysql mysql --------把mysql这个用户添加到mysql这个用户组里面去。(用组的概念更好的管理用户,特别是权限的控制非常方便。)

参数解释:
-M:不指定数组目录。
-s:该用户不能登录系统。
-r:指定用户为系统用户。
-g:指定用户的所属组。下载boost:版本为1.53,如果需要安装更高的版本,可以去下载源码来安装(不能使用1.60的版本,有可能不报错,可以下载1.59)。
地址为:

打算把我的mysql安装到我挂载的一个盘符上,地址为/server:创建目录文件。
mkdir -p /server/data
把mysql安装包放在/server目录下
安装boost,下载:wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
解压:boost_1_59_0.tar.gz
tar zxf boost_1_59_0.tar.gz
mv boost_1_59_0 boost

解压:
tar -zxvf mysql-5.7.29.tar.gz

cd mysql-5.7.29
用cmake来安装。
所以需要安装cmake:
yum -y install cmake:

在mysql的解压目录cmake编译:
cmake -DCMAKE_INSTALL_PREFIX=/server/mysql \
-DMYSQL_DATADIR=/server/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMSQL_UNIX_ADDR=/server/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/server/boost然后执行之后


编译:


等待安装:

make结束之后,再make install一下就可以了。

内存不够造成编译错误,所以可以扩大内存和CPU内核数量。

扩大内存CPU。

重新make。分分钟编译完:
make -j 8



还是不够:在创建分区的时候将读写数据改大一下。默认是512的。
然后make install。如果多次提醒内存不够的时候,重复执行 make -j 8 && make install。

以上就是安装完成的步骤。

四、配置。
1、修改目录权限:
chown -R mysql:mysql /server/mysql

2、备份原有的/etc/my.cnf:
cp /etc/my.cnf /etc/my.cnfbak

3、拷贝安装的默认配置文件到/etc/my.cnf
cp /server/mysql/support-files/my-default.cnf /etc/my.cnf

手动修改里面的路径也是OK的,如果没有自动生成my-default.cnf文件。
4、初始化
/server/mysql/bin/mysqld --initialze --user=mysql --basedir=/server/mysql --datadir=/server/mysql/data/
5、设置开机自启,加入系统启动列表。
五、验证。
登录mysql,重置密码。
查看密码:
然后重新登录。
六、其他。
查linux内核的命令:
grep processor /proc/cpuinfo | wc -l

所以在编译的时候可以这样:
make -j 4,四个内核一起用来编译,提升编译的速度。
如何查看自己操作系统内核数:
grep processor /proc/cpuinfo | wc -l

4个内核一起使用好处是快,避免编译的是出错,如果直接make 的话,可能会错误,所以要用这个命令。
















