CentOS 7 编译安装MySQL数据库系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 编译安装MySQL数据库系统相关的知识,希望对你有一定的参考价值。

Apache HTTP Server作为优秀的Web服务器软件,提供了面向用户的前端应用功能。在实际生产环境中,为了提供更丰富、更强大的Web应用功能,往往还需要有后台数据库、网页编程语言等多种角色的支持。

作为一名合格的运维工程师,在Linux系统中搭建mysql服务系统也是必备的技能之一。

MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其高性能,高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySQL项目由MySQL AB公司进行开发、发布和支持,之后历经Sun公司收购MySQL AB公司,Oracle公司收购Sun公司的过程,目前MySQL项目由Oracle公司负责运营和维护。

为了确保MySQL数据库功能的完整性、可定制性,我们决定采用源代码编译安装的方式安装MySQL数据库系统。MySQL 5.X系统版本的使用最为广泛,该版本的稳定性、兼容性都不错,我们以mysql-5.6.36.tar.gz为例。其官方网站为:https://www.mysql.com/

编译安装MySQL所需源代码包:
cmake源码包网盘下载链接:https://pan.baidu.com/s/15Q78GrbKDGWV2Tp_eAp1eg
提取码:85h5
mysql源码包网盘下载链接:链接:https://pan.baidu.com/s/1ffgOkbDctVT4T-gs3znS-A
提取码:i748

编译安装MySQL步骤:

一、准备工作

1.为了避免发生端口冲突、程序冲突等现象,建议先查询MySQL软件的安装情况。如果有,建议卸载!

[[email protected] ~]# rpm -q mysql-server mysql              
未安装软件包 mysql-server 
未安装软件包 mysql 

2.安装提供字符终端上使用的mysql基本库,以便使用mysql终端上更好的使用命令,避免乱码。

[[email protected] ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm 
//安装系统盘自带的ncurses-devel包

3.MySQL 5.X系统版本需要cmake编译安装,所以先安装cmake包。

[[email protected] ~]# tar zxf cmake-2.8.6.tar.gz -C /usr/src
[[email protected] ~]# cd /usr/src/cmake-2.8.6/
[[email protected] cmake-2.8.6]# ./configure && gmake && gmake install

二、源码编译及安装

1.创建运行用户
为了加强数据库服务的权限控制,建议使用专门的运行用户,如mysql。此用户不需要直接登录到系统,可以不创建宿主文件夹。

[[email protected] ~]# groupadd mysql
[[email protected] ~]# useradd -M -s /sbin/nologin mysql -g mysql

2.解包
将下载的mysql源代码解压,并切换到解压后的目录。

[[email protected] ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[[email protected] ~]# cd /usr/src/mysql-5.6.36/

3.配置
在实际环境中,可以会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为utf-8,并添加其他字符集的支持。

[[email protected] mysql-5.6.36]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_EXTRA_CHARSETS=all

配置命令中,各选项的含义:
技术图片

4.编译并安装

[[email protected] mysql-5.6.36]# make && make install

三、安装后的其他调整

1.对数据库目录进行权限设置

[[email protected] ~]# chown -R mysql:mysql /usr/local/mysql

2.建立配置文件
CentOS 7系统下默认支持MariaDB数据库,因此系统默认的/etc/my.cnf配置文件中是MariaDB的配置文件,在启动MySQL数据库之前,建议将原有的my.cnf文件替换为MySQL提供的配置文件内容。

[[email protected] ~]# rm -rf /etc/my.cnf                       //将原来etc文件夹下的my.cnf文件删除
[[email protected] ~]# cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
//通过mysql本身的配置文件模板生成mysql配置文件

3.初始化数据库
为了能够正常使用MySQL数据库系统,应以运行用户mysql的身份执行初始化脚本 mysql_install_db,指定数据程序目录、数据存放目录。

[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql \                       //指定程序目录
 --datadir=/usr/local/mysql/data/                                       //指定数据目录

4.设置环境变量
为了方便在任何目录下使用mysql命令,需要在/etc/profile设置环境变量。

[[email protected] ~]# echo $PATH                        //查看环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
//将mysql可执行命令脚本绝对路径放在环境变量默认的路径中

这种方式临时生效,重启系统将丢失,想要永久生效:

[[email protected] ~]# vim /etc/profile
                          …………     /省略部分内容
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
/usr/local/mysql/bin:/usr/local/mysql/bin
//前面是系统默认路径,请编写最后一条路径
[[email protected] ~]# . /etc/profile
//立即生效,读取配置文件

四.添加为系统服务
若希望添加mysqld系统服务。以便通过systemctl进行管理。首先:

[[email protected] ~]# cp /usr/src/mysql-5.6.36/support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
//将mysql源码包的启动服务的脚本复制到安装目录,并改名为mysqld.sh
[[email protected] ~]# chmod +x /usr/local/mysql/bin/mysqld.sh
//赋予执行权限

三种启动mysql的方法(其中两种是添加为系统服务,一种是mysql源码包中提供的服务脚本)

第一种添加为系统服务的方法:

[[email protected] ~]# cp /usr/local/mysql/bin/mysqld.sh /etc/init.d/mysqld
//复制mysql服务脚本到指定目录
[[email protected] ~]# vim /etc/init.d/mysqld                     
//编写配置文件,添加以下两行
#!/bin/bash
# chkconfig: 2345 86 36
                    ………………                   //省略部分内容
[[email protected] ~]# chkconfig --add mysqld
//添加为系统服务
[[email protected] ~]# systemctl start mysqld
//启动服务成功
[[email protected] ~]# netstat -anpt | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      68867/mysqld     
//mysql服务默认的TCP端口是3306
[[email protected] ~]# chkconfig  --level 2345 mysqld on
//设置为开机自启动

第二种添加为系统服务的方法:

[[email protected] ~]# vim /usr/lib/systemd/system/mysqld.service
//创建mysql系统服务的配置文件并编辑
[Unit]
Description=MYSQL Server
After=network.target

[Service]
User=mysql                //指定程序运行的用户账号
Group=mysql               //指定程序运行的组账号

Type=forking
PIDFile=/usr/local/mysql/data/localhost.localdomain.pid   //localhost.localdomain为当前的主机名
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[Install]
WantedBy=multi-user.target
[[email protected] ~]# systemctl start mysqld
//启动服务成功,并查看端口信息
[[email protected] ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      68867/mysqld 
[[email protected] ~]# systemctl enable mysqld
//设置为开机自启动

启动服务时,如果出现错误,建议使用:

[[email protected] ~]# systemctl daemon-reload
//重载服务配置项

这两种方式这里就不多说了,如果有不明白的,可以参考博文CentOS 7 利用Apache搭建Web网站服务,里面有详细的介绍。

第三种方法启动方法

[[email protected] ~]# /usr/local/mysql/bin/mysqld_safe &
//使用mysql服务自带的工具mysqld_safe来启动服务,
//并且放入后台执行,否则会占用前台终端的资源
[1] 69469
[[email protected] ~]# 190718 01:54:05 mysqld_safe Logging to ‘/usr/local/mysql/data/localhost.localdomain.err‘.
190718 01:54:05 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[[email protected] ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      69549/mysqld 
[[email protected] ~]# mysqladmin shutdown
//停止服务
[[email protected] ~]# netstat -anpt | grep mysqld

以上是关于CentOS 7 编译安装MySQL数据库系统的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库for CentOS7 yum安装5.7.30编译安装和基础操作

Centos7中编译安装MySQL(mysql-5.7)

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql

Centos7编译安装MySQL5.7.25

centos7.x编译安装mysql5.7.16

centos 7 编译安装 mysql 及 添加 mysql 到系统服务