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编译安装和基础操作