Centos 7.6 源码编译安装 MariaDB 10.5.9

2023-05-16

文章目录

  • 准备工作
    • 创建用户和组
    • 创建数据库相关目录
    • 删除数据库相关文件
  • 安装相关包
    • 安装依赖库
    • 安装编译包
  • 编译安装 `MariaDB`
  • 配置 `MariaDB`

本文主要记录如何在 CentOS 7.6 中编译安装 MariaDB 官方最新的 10.5.9 版本。由于像 NginxMysqlPHP的的源码都是用 C/C++ 写的,所以自己的 CentOS 7.6 服务器上必须要安装 gccg++ 软件。

搭建 LNMP 环境一般是先安装 Mysql/MariaDB ,再安装 Nginx ,其次是安装 PHP

准备工作

创建用户和组

先创建一个名为 mysql 且没有登录权限的系统用户和一个名为 mysql 的系统用户组,然后安装 MariaDB 所需的依赖库和依赖包,最后通过 cmake 进行安装的详细配置。

  • 创建 mysql 系统用户和系统用户组
groupadd -r mysql && useradd -c "MariaDB Server" -r -g mysql -s /sbin/nologin -d /usr/local/mariadb mysql -M

创建数据库相关目录

提前预定 MariaDB 的安装目录为 /usr/local/mariadb 并且数据目录为 /data/mariadb ,赋予 mysql 用户权限。

mkdir -pv /data/mariadb && chown -R mysql:mysql /data/mariadb

删除数据库相关文件

  • 删除 CentOS 默认数据库配置文件
find -H /etc/ | grep my.c
> /etc/my.cnf.d
> /etc/my.cnf.d/mysql-clients.cnf
> /etc/pki/tls/certs/make-dummy-cert
> /etc/pki/tls/certs/renew-dummy-cert
> /etc/my.cnf

rm -rf /etc/my.cnf /etc/my.cnf.d/
  • 卸载系统自带 mariadb-libs
rpm -qa|grep mariadb*
> mariadb-libs-5.5.60-1.el7_5.x86_64

rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

安装相关包

安装依赖库

  • Yum 安装 GCCGCC-C++C/C++ 语言编译环境
yum -y install gcc gcc-c++ make autoconf automake libtool
  • Yum 安装 MariaDB 必须的依赖库
yum -y install openssl openssl-devel ncurses ncurses-devel bison bison-devel boost boost-devel jemalloc jemalloc-devel bzip2 bzip2-devel libxml2 libxml2-devel perl perl-devel lsof libaio-devel libcurl-devel libarchive-devel libevent-devel pcre-devel pcre2-devel zlib-devel kernel-headers kernel-devel zip tar m4 git gnutls-devel

安装编译包

  • CMake :编译工具

(备用:https://blog.xiaoqy.com/pub/packages/cmake/cmake-3.19.5.tar.gz)

wget -P '/usr/local/src' https://cmake.org/files/v3.19/cmake-3.19.5.tar.gz \
&& cd /usr/local/src \
&& tar -zxvf cmake-3.19.5.tar.gz -C '/usr/local/src' \
&& cd cmake-3.19.5

./bootstrap
gmake && gmake install	# 或者 make && make install

cmake --version

编译安装 MariaDB

  • 下载并解压文件

(备用:https://blog.xiaoqy.com/pub/packages/mariadb/mariadb-10.5.9.tar.gz

wget -P '/usr/local/src' https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.5.9/source/mariadb-10.5.9.tar.gz \
&& cd /usr/local/src \
&& tar -zxvf mariadb-10.5.9.tar.gz -C '/usr/local/src' \
&& cd mariadb-10.5.9
  • 预编译
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DMYSQL_UNIX_ADDR=/data/mariadb/mysql.sock \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/data/mariadb \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITHOUT_TOKUDB=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_BOOST=system \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1
  • 编译并安装
make && make install && cd

配置 MariaDB

# 使用 mysql 用户执行脚本, 安装数据库到数据库存放目录
/usr/local/mariadb/scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
  • 复制 MariaDB 配置文件到 /etc 目录
# 拷贝 maria 安装目录下 support-files 目录下的文件 wsrep.cnf 到 /etc 目录并重命名为 my.cnf
cp /usr/local/mariadb/support-files/wsrep.cnf /etc/my.cnf
  • 创建启动脚本
cp /usr/local/mariadb/support-files/mysql.server /etc/rc.d/init.d/mysqld
  • 启动 mysqld 服务
/etc/rc.d/init.d/mysqld start
  • 配置环境变量
# 写入环境变量到 mysql.sh
echo -e "export PATH=\$PATH:/usr/local/mariadb/bin/" > /etc/profile.d/mysql.sh

# 为脚本赋于可执行权限
chmod 0777 /etc/profile.d/mysql.sh

# 读取并执行 mysql.sh 脚本, 并执行脚本, 以立即生效环境变量
source /etc/profile.d/mysql.sh
  • 初始化 MariaDB
# 运行 MariaDB 初始化脚本
mysql_secure_installation
 
# 以下提示:
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user. If you've just installed MariaDB, and
    haven't set the root password yet, you should just press enter here.
 
    Enter current password for root (enter for none):	# 直接Enter,预设MariaDB没有密码
    OK, successfully used password, moving on...
 
    Setting the root password or using the unix_socket ensures that nobody
    can log into the MariaDB root user without the proper authorisation.
 
    You already have your root account protected, so you can safely answer 'n'.

    Switch to unix_socket authentication [Y/n] y	# y,切换到unix_socket身份验证
    Enabled successfully!
    Reloading privilege tables..
     ... Success!
 
 
    You already have your root account protected, so you can safely answer 'n'.

    Change the root password? [Y/n] y	# y,设定root密码
    New password: 
    Re-enter new password:
    Password updated successfully!
    Reloading privilege tables..
     ... Success!
 
 
    By default, a MariaDB installation has an anonymous user, allowing anyone
    to log into MariaDB without having to have a user account created for
    them.  This is intended only for testing, and to make the installation
    go a bit smoother.  You should remove them before moving into a
    production environment.
 
    Remove anonymous users? [Y/n] y	# y,移除匿名登入
     ... Success!
 
    Normally, root should only be allowed to connect from 'localhost'.  This
    ensures that someone cannot guess at the root password from the network.
 
    Disallow root login remotely? [Y/n] y	# y,移除远端登入权限
     ... Success!
 
    By default, MariaDB comes with a database named 'test' that anyone can
    access.  This is also intended only for testing, and should be removed
    before moving into a production environment.
 
    Remove test database and access to it? [Y/n] y	# y,移除测试资料库和账号
     - Dropping test database...
     ... Success!
     - Removing privileges on test database...
     ... Success!
 
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
 
    Reload privilege tables now? [Y/n] y	# y,重新载入权限表
     ... Success!
 
    Cleaning up...

    All done!  If you've completed all of the above steps, your MariaDB
    installation should now be secure.
 
    Thanks for using MariaDB!
  • 设置 MariaDB 为自启动并启动服务
systemctl enable mysqld.service && systemctl start mysqld.service
  • 查询 MariaDB 状态
systemctl status mysqld.service

# 或者
ps -ef | grep mysqld
netstat -anp | grep mysqld

作者:白小七羽
原文链接:https://geek.xiaoqy.com/215.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos 7.6 源码编译安装 MariaDB 10.5.9 的相关文章

随机推荐

  • 程序员跨越式成长指南

    我的 GitChat 达人课 程序员跨越式成长指南 xff0c 更新了三篇文章 xff0c 现在完成的内容如下 xff1a 导读 xff1a 开发路上的两次关键跨越 第01课 xff1a 如何做到选择大于努力 第02课 xff1a 开发者的
  • 库文件libmng.so.1缺失解决办法

    在Ubuntu14 04下装DC版本K 2015 06 xff0c 发现不能找到以下一个或者多个库文件 xff08 以一个为例 xff09 xff1a libmng so 1 找不到是因为库比较新 xff0c 而你的工具所需要的库比较老 x
  • 产品管理精华:第十一,数据的思维方式

    xfeff xfeff 数量庞大 增长迅猛 种类多样的数据已经成为企业在大数据时代发展不得不面临的现实境况 这是挑战 xff0c 也是机遇 基于客户需求 xff0c 提供领先 全面 有效的解决方案 xff0c 帮助企业获取商业洞察力 xff
  • 产品管理精华:第十四,产品炼成?

    xfeff 最近一段时间在准备信息系统项目管理师 的考试 xff0c 在备考复习过程中 xff0c 通过系统学习和理解项目管理相关知识 xff0c 发现项目和产品管理联系很密切 项目过程是伴随着产品过程而生 我们先来了解一下项目的定义 xf
  • 产品管理精华:第十六,品味

    美感是第一道关卡 xff0c 丑陋的数学在世界上无法生存 G H 哈代 xff0c 一个数学家的道歉 品味 xff0c 如今很少听到这个词了 xff0c 可能被一些新的 xff0c 流行的叫法替代了 很长一段时间 xff0c 谈论品味这玩意
  • 《产品管理精华》目录

    产品管理精华 目录 本文是这个目录 xff0c 可以快速找到你需要的内容 xff1a 产品管理精华 xff1a 第一 xff0c 谁是优秀的产品经理 xff1f 产品管理精华 xff1a 第二 xff0c 工具 xff0c 适合自己的最好
  • 电商分销的社交化运营实践

    最近一段时间专注于研究社交化的电商分销运营体系 xff0c 如何最大化利用碎片化社会资源来整合营销渠道 目前最有代表性的电商分销就是全民分销概念 xff0c 它的最大特点在于通过社交网络 xff08 大部分是通过微信商城开店 43 三级返佣
  • 《产品管理精华》序

    今日事 xff0c 今日毕 xff01 xff0c 说起来容易 xff0c 做起来难 知道为什么要去做一件事 xff0c 这样做了哪些人都受到实惠 xff0c 领悟生活的趣味 xff0c 自己是否也得到了快乐和满足 xff0c 每一份付出都
  • 个人简介

    经验丰富的产品设计师 xff0c 专门从事与产品设计相关的研究 趋势分析 理念探索和产品研发 专注于政策脉搏和市场趋势的研究 xff0c 成功研发多个互联网相关领域产品 xff0c 对移动互联网产品架构 运营管理有较为深入的管控能力 欢迎大
  • Android P 增加系统属性必读

    如何增加属性 Android P 对属性配置有很严格的要求 xff0c 不建议增加system 分区内的属性 xff0c 建议增加的属性都在nonsystem分区 Non system 分区的限制 Android P 为稳定的exporte
  • 产品管理精华:第一,谁是优秀的产品经理?

    34 人因为梦想而伟大 34 英格丽 褒曼 每个人的心中都有一个梦想 xff0c 梦想是美好的 xff0c 但是实现梦想的道路是曲折的 xff0c 无数人在实现梦想的道路上遭遇了无数曲折 xff0c 尽管如此 xff0c 他们依旧大步向前
  • 产品管理精华:第三,需求调研,从用户出发

    因为需要 xff0c 让我更加完美 佚名 产品经理都会遇到 客户 用户 这两个概念念 xff0c 它们谁更重要也一直争论不休 用户 近乎苛刻的需求可以不断产品体验和质量 xff0c 同时产品投入市场之后都会遇到变现这个问题 xff0c 总需
  • IBM LinuxONE Community Cloud 免费试用申请教程

    在某乎上看到IBM上可以免费使用VPS的福利 xff0c 正好这一时间需要一台CC服务器 xff0c 所以记录一下 xff0c 分享给各位 因为oralce 亚马逊一年的白嫖都用过了 xff0c 阿里白嫖一个月也到期了 xff0c 所以只要
  • 使用IPV6+DDNS连接内网主机

    0 前言 IPV6已经普及多年 xff0c 但是作为互联网用户好像并没有在实用性上有更多感受 xff0c 或者说IPV6并没有让普通用户感觉到改变 我作为网络从业者其实也没有过多关注 在工作中普遍遇到的还是基于IPV4的网络 xff0c 比
  • HFish蜜罐的介绍和简单测试(二)

    目录 1 HFish使用说明 1 1 部署模型 1 2 添加 删除节点 默认节点 新增节点 删除节点 1 3 添加 删除蜜罐 直接修改蜜罐服务 创建模板 xff0c 应用到多节点 1 4 查看攻击 2 卸载 2 1 卸载Linux管理端 2
  • HFish蜜罐的介绍和简单测试(三)

    目录 0 HFish平台管理 0 1 报告管理 0 2 系统配置 1 蜜铒配置 1 1 什么是诱饵 1 2 蜜铒使用场景 1 3 蜜标使用场景 诱饵定制 分发接口 告警信息 在学习蜜罐时 xff0c HFish是个不错的选择 首先是免费使用
  • 网工神器:PNETLab模拟器踩坑过程

    目录 0 前言 1 PNETLab介绍 2 下载安装 2 1 下载 2 2 导入 2 3 启动 2 4 注册和登录 3 汉化 4 镜像 5 下载实验 6 控制台 5 1 HTML控制台 5 2 默认控制台 7 总结 0 前言 由于工作需要
  • 无线攻击笔记

    第11章 无线攻击 任务50 xff1a 无线渗透 exe 802 11只涵盖了下面黄字部分的2层 xff0c 802 2定义了LLC层 802 11 下面的协议组 xff0c F是正式标准 xff0c 大写 xff0c abcde小写是在
  • Jumpserver入门介绍

    大多数的安全设备都接触过 xff0c 只有堡垒机没有深入了解 xff0c 所以一直想了解一下堡垒机的安装和使用 市面上好多商业化的物理设备堡垒机 xff0c 目前没有接触 xff0c 幸好有有开源的堡垒机 Jumpserver 今天安装测试
  • Centos 7.6 源码编译安装 MariaDB 10.5.9

    文章目录 准备工作创建用户和组创建数据库相关目录删除数据库相关文件 安装相关包安装依赖库安装编译包 编译安装 96 MariaDB 96 配置 96 MariaDB 96 本文主要记录如何在 CentOS 7 6 中编译安装 MariaDB