编译安装主要是方便我们自定义数据,MySQL等目录相关的东西,便于统一管理

  1. 下载源码包 MySQL官网 选择download 随后选择社区服务器 社区服务器 选择源码包

最终下载地址 https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26.tar.gz 下载完成后,传入centos中 2.正式安装 环境准备

mkdir -p /app/pack /app/svc /app/svc/mysql/data  #pack 用来放安装包, svc用来放安装好的服务(个人习惯)
删除原来可能有的依赖和数据库残留等
yum remove boost* mysql* mariadb* -y 

上传完成并解压

pack]# ls
mysql-5.6.26.tar.gz
tar xf mysql-5.6.26.tar.gz  #解压在当前目录即可,耐心等下。
安装依赖环境
yum -y install gcc-c++ cmake ncurses-devel apr apr-devel apr-util apr-util-devel autoconf

开始编译

cd /app/pack/mysql-5.6.26
创建MySQL用户: useradd -M  -s /sbin/nologin mysql。
cmake \
 -DCMAKE_INSTALL_PREFIX=/app/svc/mysql \
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_MYISAM_STORAGE_ENGINE=1\
 -DWITH_INNOBASE_STORAGE_ENGINE=1\
 -DWITH_MEMORY_STORAGE_ENGINE=1\
 -DWITH_READLINE=1\
 -DENABLED_LOCAL_INFILE=1\
 -DMYSQL_DATADIR=/app/svc/mysql/data \
 -DMYSQL-USER=mysql
 
 编译结束后 键入 echo $? 参数 若得到0则cmake编译成功。
 安装
 make -j 4 && make install   # -j 4 参数为调用四个线程进行,安装完成后再次  echo $?,并查看刚刚的basedir目录有没有生成相关文件和目录。
 ####在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。

参数解释

DCMAKE_INSTALL_PREFIX                                      #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置
DMYSQL_UNIX_ADDR                                           #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
DDEFAULT_CHARSET                        #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集
DDEFAULT_COLLATION                           #默认字符校对
DWITH_EXTRA_CHARSETS                  #制定mysql拓展字符集,默认值也是all支持所有的字符集
DWITH_MYISAM_STORAGE_ENGINE 
DWITH_INNOBASE_STORAGE_ENGINE
DWITH_MEMORY_STORAGE_ENGINE
#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务器,这样MYSQL就支持这三种存储引擎
DWITH_READLINE                           #支持readline库
DENABLED_LOCAL_INFILE                    #允许本地倒入数据,启用加载本地数据
DMYSQL_DATADIR                                #mysql数据库存放路径
DMYSQL-USER                                    #运行mysql的用户

官网解释的编译参数 https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

安装完成后,对MySQL进行一系列的配置

chown -R mysql:mysql  /app/svc/mysql  #修改mysql目录的属组
cp /app/svc/mysql/support-files/my-default.cnf /etc/my.cnf #将mysql自带的配置文件复制到这个位置
修改配置文件
[mysqld]
basedir=/app/svc/mysql          #安装基础目录
datadir=/app/svc/mysql/data   #数据目录
socket=/tmp/mysql.sock       #socket文件
port=3306 #端口
[mysqld_safe]
log-error=/app/svc/mysql/data/mysqld.error #错误日志
pid-file=/app/svc/mysql/data/mysqld.pid   #pid文件

/app/svc/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --basedir=/app/svc/mysql/ --datadir=/app/svc/mysql/data/ --user=mysql  #初始化mysql数据库,echo $?
cp /app/svc/mysql/support-files/mysql.server /etc/init.d/mysqld  #启动文件复制到系统下
修改里面两项参数
basedir=/app/svc/mysql  
datadir=/app/svc/mysql/data

service mysqld start  #启动数据库
chkconfig mysqld on  #开机自启动

最后把常用的命令,软连接到系统目录下,使得可以直接调用

ln -s /app/svc/mysql/bin/* /bin

##################################################################### 安装5.7的高版本时

http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz  下载该库文件存入任意记得住的文件夹
随后在cmake时加入
-DWITH_BOOST=/app/pack/boost \
初始化: 在5.7以后mysql_install_db已经废弃了 取而代之的是 --initialize
mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf -basedir=/opt/mysql/ --datadir=/opt/mysql/data/ --user=mysql --initialize
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
#启动文件复制到系统下,修改里面两项参数
basedir=  
datadir=

5.7初始化完成后,会生成默认密码 如下 image.png