一、官网下载安装包
MySQL官网:https://downloads.mysql.com/archives/community/
二、下载完之后将mysql-community-5.7.31-1.el7.src.rpm安装包传到CentOS 7机器上
三、安装MySQL5.7.31安装包
rpm -ivh mysql-community-5.7.31-1.el7.src.rpm 如果权限不足需sudo
注:boost源码包跟mysql-5.7.31源码包都在在rpmbuild目录下的SOURCES目录下
四、安装环境依赖包
yum -y install ncurses ncurses-devel bison cmake bzip2
注:php版本比较高的话,可能需要重新安装libzip,安装前需安装高版本的cmake;
五、创建用户并解压安装包
1.创建用户
useradd -s /sbin/nologin mysql
2.将安装包解压缩放在指定的目录中
创建解压目录:mkdir /home/ops
解压boot安装包:tar -jxvf boost_1_59_0.tar.bz2 -C /home/ops
解压MySQL安装包:tar -zxvf mysql-5.7.31.tar.gz -C /home/ops
3.修改解压后目录名称
cd /home/ops/
mv boost_1_59_0/ boost
六、安装软件依赖环境并编译安装
1.安装软件依赖包
yum -y install gcc gcc-c++
2.生成编译文件:
cmake -DCMAKE_INSTALL_PREFIX=/home/ops/mysql -DMYSQL_UNIX_ADDR=/home/ops/mysql/mysql.sock -DSYSCONFDIR=/etc -DSYSTEMD_PID_DIR=/home/ops/mysql -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DEXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/home/ops/mysql/data -DWITH_BOOST=/home/ops/boost -DWITH_SYSTEMD=1
-DCMAKE_INSTALL_PREFIX=/home/ops/mysql #指定安装路径 -DMYSQL_UNIX_ADDR=/home/ops/mysql/mysql.sock #mysql.sock文件生成路径,发起本地连接时使用 -DSYSCONFDIR=/etc #配置文件路径 -DSYSTEMD_PID_DIR=/home/ops/mysql #PID文件指定路径 -DMYSQL_TCP_PORT=3306 #msyql监听端口 -DDEFAULT_CHARSET=utf8 #指定默认字符集 -DDEFAULT_COLLATION=utf8_general_ci #校验字符,指定默认编码 -DENABLED_LOCAL_INFILE=1 #允许从本地导入数据 -DWITH_EXTRA_CHARSETS=1 #支持额外的字符集 -DEXTRA_CHARSETS=all #安装所有扩展字符集 -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 #安装archive 存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安装blackhole存储引擎 -DWITH_MYISAM_STORAGE_ENGINE=1 #安装myisam存储引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 #安装FEDERATED存储引擎 -DMYSQL_DATADIR=/home/ops/mysql/data #指定数据存放路径 -DWITH_BOOST=/home/ops/boost #boost库主要是在对mysql的数据备份时用到(写绝对路径) -DWITH_SYSTEMD=1 #这是MySQL 5.7原生支持Systemd的选项,如果要是用systemctl启动,就必须开启
3.编译安装
make && make install
七、创建MySQL文件及配置变量,调整配置文件
1.创建mysql数据文件存放目录,修改mysql工作目录的所有者跟所属组
cd ../mysql 进入到MySQL目录
mkdir data/ 创建data目录
chown -R mysql:mysql mysql mysql目录属主属组修改为MySQL
chmod 777 mysql/data mysql目录权限修改为777满权限
2.将配置声明到环境变量中
vim /etc/profile 设置变量
注:在export PATH USER LOGNAME.......HISTCONTROL前面添加
export PATH=$PATH:/home/ops/mysql/bin
注:/home/ops/mysql/bin这个路径视情况而定,另外export PATH=$PATH:/home/ops/mysql/bin添加的位置也不是固定的,可以添加到文件的其他地方,尽量添加到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL的上面
刷新变量文件:source /etc/profile
[client]
port=3306
socket=/home/ops/mysql/mysql.sock[mysqld]
datadir=/home/ops/mysql/data
basedir=/home/ops/mysql
socket=/home/ops/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
log-error=/home/ops/mysql/mysql.pid
pid-file=/home/ops/mysql/mysql.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
八、初始化数据库
bin/mysqld --initialize --user=mysql --basedir=/home/ops/mysql --datadir=/home/ops/mysql/data/ 初始化数据库
随机密码:Zj>I(qLZl71+
九、将service服务启动脚本放到systemd目录下执行,并启动服务
cp /home/ops/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
sudo systemctl daemon-reload 重新加载服务
sudo systemctl start mysqld 启动MySQL服务
netstat -ntap | grep 3306 查看MySQL端口
此时MySQL数据库为编译成功;
十、连接MySQL数据库并进行测试
mysql -uroot -p'Zj>I(qLZl71+' 连接数据库
set password=password("123456"); 修改当前root用户密码
mysql -uroot -p'123456' 新密码测试登录
十一、配置MySQL数据库远程连接
CREATE USER 'root'@'%' IDENTIFIED BY '123456'; 授权登录
GRANT ALL ON *.* TO 'root'@'%'; 授权用户
create database test; 创建数据库
测试远程登陆:mysql -uroot -h数据库所在的主机ip -p'123456'
查看是否有新建数据库;