【安装准备】
一个虚拟机(CentOS7,其他系统自行更换命令),官网下载MySQL源码包(https://dev.mysql.com/downloads/mysql/)
依赖环境(cmake,gcc ,gcc-c++)
【安装过程】
安装依赖环境
# 一般情况只需要gcc-c++安装即可,centos7自带make编译,不过可以确保一下
yum install cmake gcc gcc-c++ -y
# 添加mysql用户组和用户
groupadd mysql
useradd -g mysql mysql
# 解压
tar -zxvf mysql-5.7.22.tar.gz
# 安装到/usr/local/mysql
mv mysql-5.7.22 /usr/local/mysql
# mysql目录授权
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql
# 如果是 mysql-boost 源码包,无须下载boost,自带boost
cmake -DWITH_BOOST=boost # 其他可见下方
# 如果是 mysql 源码包,需要安装boost
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysqld.sock \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_USER=mysql \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DMYSQL_TCP_PORT=3306
# 提示,mysql源码安装需要boost,如果没有安装,需要配置boost下载及安装目录,会自动下载并安装 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
# 编译安装
make
make install
make clean
# 创建mysqld服务
# 服务必须
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
或
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 将mysql安装目录放在/usr/bin下(可不需要,看自己安装习惯)
chmod +x /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/* /usr/local/bin/
# 创建mysql的data目录
mkdir /usr/local/mysql/data
#开机自启 以下作用等同,选其一
chkconfig --add mysqld
chkconfig mysqld on
systemctl enable mysqld
# 初始化 数据库 # 确保data目录为空
# --user:定义数据库的所属主,--datadir:定义数据库安装到哪里,建议放到大空间的分区上,这个目录需要自行创建。
./scripts/mysql_install_db --user=mysql --datadir=/var/mysql/data
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 5.7 之后推荐使用此方法
Cmake参数描述
# 解释
DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径
DMYSQL_DATADIR=/usr/local/mysql/data:数据文件存放位置
DSYSCONFDIR=/etc:my.cnf路径
DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎
DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎
DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径
DMYSQL_TCP_PORT=3306:端口
DENABLED_LOCAL_INFILE=1:允许从本地导入数据
DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区
DEXTRA_CHARSETS=all:安装所有的字符集
DDEFAULT_CHARSET=utf8:默认字符
DWITH_EMBEDDED_SERVER=1:嵌入式服务器
DWITH_BOOST=/usr/local/boost :boost源码路径
DDEFAULT_COLLATION=utf8mb4_general_ci :默认排序规则、