CentOS7.5编译安装MySQL-5.7.23
1.安装依赖包
[root@db03 ~]# yum -y install -y gcc gcc-c++ automake autoconf cmake bison-devel ncurses-devel libaio-devel
2.创建mysql相关目录及用户和组
//创建mysql安装目录
[root@db03 ~]# mkdir /usr/local/mysql-5.7.23
//创建mysql组
[root@db01 ~]# groupadd mysql
//创建mysql用户
[root@db01 ~]# useradd -r -g mysql -s /bin/false mysql
3.下载boost
5.7版本需要下载一个Boost C++ 1.59.0(这是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件许可协议(Boost Software License)之下。)
[root@db03 ~]# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
4.解压缩boost至/usr/local/mysql-5.7.23
[root@db03 ~]# tar xf boost_1_59_0.tar.gz -C /usr/local/mysql-5.7.23
5.下载mysql-5.7.23
[root@db03 ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.23.tar.gz
6.解压缩mysql
//解压缩下载的包
[root@db03 ~]# tar xf mysql-5.7.23.tar.gz
7.进入解压目录,开始编译安装
[root@db03 ~]# cd mysql-5.7.23
[root@db03 mysql-5.7.23]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.23 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled \
-DWITH_SYSTEMD=1 \
-DDOWNLOAD_BOOST=0 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/usr/local/mysql-5.7.23/boost
//编译并安装
[root@db03 mysql-5.7.23]# make && make install
8.修改mysql安装目录所有者并做软连接
//修改目录所有者
[root@db03 ~]# chown -R mysql.mysql /usr/local/mysql-5.7.23
//做软连接
[root@db03 ~]# ln -s /usr/local/mysql-5.7.23/ /usr/local/mysql
9.初始化mysql
//进入mysql编译安装目录
[root@db03 ~]# cd /usr/local/mysql
⚠️⚠️⚠️注意!!!
MySQL 5.7.6之前的版本执行这个脚本初始化系统数据库
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
MySQL 5.7.6之后用以下脚本初始化系统数据库
./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//初始化mysql
[root@db03 mysql]# ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--initialize-insecure #初始化加此选项表示初始化后不生成随机密码
通过mysqld --verbose --help|grep initialize查看说明
返回以下结果表明初始化正确
10.编辑mysql主配置文件
注意mysql-5.7.23源码包默认没有配置文件!!!!!!
//备份/etc/my.cnf
[root@db03 local]# mv /etc/my.cnf /etc/my.cnf.old
[root@db03 local]# cd
//以下配置为最精简版,可根据实际情况进行相应设置
[root@db03 ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
user=mysql
log-error=/usr/local/mysql/data/error.log
11.拷贝mysql启动文件
//拷贝mysql.server文件就可以使用/etc/init.d/mysqld 方式启动mysql
[root@db03 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
12.systemd管理mysql
[root@db03 ~]# cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
13.导出mysql命令环境变量,使mysql命令可以使用
//最好不要往/etc/profile中追加内容,可以创建/etc/profile.d/x.sh
[root@db03 ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
//使配置生效
[root@db03 ~]# source /etc/profile
14.启动mysql,检查启动
//启动mysql
[root@db03 ~]# systemctl start mysqld
//检查启动
[root@db03 ~]# netstat -ntpl
tcp6 0 0 :::3306 :::* LISTEN 21196/mysqld
扩展:一台主机mysql已经编译好,通过拷贝相关目录和文件的方式快速部署其他mysql
步骤:
1.几台机器的环境要一致,操作系统、硬件环境
2.拷贝mysql编译安装路径目录,本文为/usr/local/mysql-5.7.23
3.拷贝mysql配置文件、启动文件、mysql命令环境变量文件/etc/profile.d/mysql.sh(或者在另外的mysql主机手动填写)
4.拷贝systemd管理文件
5.创建mysql用户和组
1.已经编译安装好的mysql主机拷贝相关包
//打包mysql编译安装目录
[root@db01 ~]# cd /usr/local
[root@db01 local]# tar cf /root/mysql.tar mysql-5.7.23
//将包拷贝至另一台mysql主机
[root@db01 ~]# scp mysql.tar 10.0.0.3:/usr/local
//拷贝配置文件,5.7.23默认没有配置文件,这个配置文件是手动写的
[root@db01 ~]# scp /etc/my.cnf 10.0.0.3:/etc
//拷贝启动文件
[root@db01 ~]# scp /etc/init.d/mysqld 10.0.0.3:/etc/init.d
//拷贝systemd管理文件
[root@db01 ~]# scp /etc/systemd/system/mysqld.service 10.0.0.3:/etc/systemd/system
//拷贝mysql命令环境变量文件
[root@db01 ~]# scp /etc/profile.d/mysql.sh 10.0.0.3:/etc/profile.d
2.另外一台mysql主机操作
//创建mysql用户和组
[root@db03 ~]# groupadd mysql
[root@db03 ~]# useradd -r -g mysql -s /bin/false mysql
//解压缩拷贝过来的mysql包
[root@db03 ~]# cd /usr/local
[root@db03 local]# tar xf mysql.tar
//修改mysql所有者
[root@db03 local]# chown -R mysql.mysql mysql-5.7.23
//做软连接
[root@db03 local]# ln -s mysql-5.7.23/ mysql
//使mysql命令环境变量配置生效
[root@db03 local]# source /etc/profile
//启动mysql
[root@db03 ~]# systemctl start mysqld ;systemctl enable mysqld
或者
[root@db03 ~]# /etc/init.d/mysqld start
//验证端口
[root@db03 ~]# netstat -ntpl|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 1799/mysqld
到此,快速部署mysql完成