阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

169次阅读
没有评论

共计 4979 个字符,预计需要花费 13 分钟才能阅读完成。

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 源码和 mysql 源码包 可从以下信息得到下载:

点击这个 http://www.linuxidc.com/Linux/2013-12/93755.htm 链接 关注 Linux 公社官方微信,关注后回复数字160176。即可得到网友的分享密码。

如果取消关注 Linux 公社公众号,即使再次关注,也将无法提供本服务!

链接: https://pan.baidu.com/s/1hzr7J6InJLGcgqQTY0lwuw 密码:获得见上面的方法,地址失效请在下面留言。

—————————————— 分割线 ——————————————

编译安装 MySQL 步骤:

一、准备工作

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

[root@localhost ~]# rpm -q mysql-server mysql              
未安装软件包 mysql-server 
未安装软件包 mysql

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

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

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

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

二、源码编译及安装

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

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql

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

[root@localhost ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/mysql-5.6.36/

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

[root@localhost 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

配置命令中,各选项的含义:
CentOS 7 编译安装 MySQL 数据库系统

4. 编译并安装

[root@localhost mysql-5.6.36]# make && make install

三、安装后的其他调整

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

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql

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

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

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

[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db \
 --user=mysql --basedir=/usr/local/mysql   --datadir=/usr/local/mysql/data/

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

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

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

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

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

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

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

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

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

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

[root@localhost ~]# 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
[root@localhost ~]# systemctl start mysqld
// 启动服务成功,并查看端口信息
[root@localhost ~]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      68867/mysqld 
[root@localhost ~]# systemctl enable mysqld
// 设置为开机自启动

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

[root@localhost ~]# systemctl daemon-reload
// 重载服务配置项

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

第三种方法启动方法

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe &
// 使用 mysql 服务自带的工具 mysqld_safe 来启动服务,// 并且放入后台执行,否则会占用前台终端的资源
[1] 69469
[root@localhost ~]# 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

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

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计4979字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中