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查看说明

返回以下结果表明初始化正确

1

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完成

泡泡吐肥皂o © gitbook.pptfz.top 2021 all right reserved,powered by Gitbook文件修订时间: 秃笔南波湾!!!

results matching ""

    No results matching ""