Linux源码包安装MySQL数据库

一、安装环境介绍

1.CentOS7.9虚拟机

2.mysql-boost-5.7.42.tar源码包,自MySQL5.7版本开始需要依赖boots库,如果未安装boots库,建议下载mysql-boost源码包,否则需要额外安装boost库,MySQL下载地址https://downloads.mysql.com/archives/community/

二、源码包安装MySQL

1.检查&卸载mariadb组件

         在CentOS7.9中,默认安装了mariadb-libs组件,该组件会与MySQL冲突,建议检查并卸载,否则会导致安装MySQL失败。

        rpm -qa |grep mariadb 检查是否安装了mariadb组件

        rpm -e --nodeps mariadb-libs 卸载mariadb-libs组件并且不检查依赖

[root@wzh101 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@wzh101 ~]# rpm -e --nodeps mariadb-libs

2.安装依赖包

        MySQL编译安装依赖一些基础包,需要先安装这些依赖包,否则可能导致编译安装异常,这里采用yum方式安装

yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bison bison-devel

3.上传并解压MySQL源码包

        通过Xftp或其他FTP软件,将下载好的源码包上传到Linux中,我是将源码包上传到/usr/local/tmp目录中,若上传到其他目录,则cd 相应目录即可,解压缩源码包:

[root@wzh101 tmp]# cd /usr/local/tmp
[root@wzh101 tmp]# ls
mysql-boost-5.7.42.tar.gz
[root@wzh101 tmp]# tar -zxvf mysql-boost-5.7.42.tar.gz
[root@wzh101 tmp]# ls
mysql-5.7.42  mysql-boost-5.7.42.tar.gz

4.进行预编码

        MySQL与其他软件不同,不是使用./configure进行预编译的,而是使用cmake进行预编译的

[root@wzh101 tmp]# cd mysql-5.7.42/
[root@wzh101 mysql-5.7.42]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -SYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_INNODB_MEMCACHED=ON -DWITH_BOOST=boost/boost_1_59_0

预编译基础配置解释,根据需要选择配置

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql				#安装位置
-DMYSQL_DATADIR=/usr/local/mysql/data				#数据库数据存放位置
-DMYSQL_TCP_PORT=3306								#端口
-SYSCONFDIR=/etc									#my.cnf配置文件所在位置,建议使用/etc
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock	#套接字socket文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1		            #将InnoDB存储引擎编译到服务器中
-DWITH_PARTITION_STORAGE_ENGINE=1				    #是否支持分区
-DWITH_FEDERATED_STORAGE_ENGINE=1				    #本地数据库是否可以访问远程mysql数据
-DWITH_BLACKHOLE_STORAGE_ENGINE=1				    #黑洞存储引擎,接收数据但不存储直接丢弃
-DWITH_MYISAM_STORAGE_ENGINE=1					    #将MYISAM存储引擎静态编译到服务器中
-DENABLED_LOCAL_INFILE=1					        #启用本地加载外部数据文件功能,建议开启
-DEXTRA_CHARSETS=all							    #扩展字符集
-DDEFAULT_CHARSET=utf8mb4							#默认字符集
-DDEFAULT_COLLATION=utf8mb4_general_ci				#默认校验规则
-DWITH_SSL=system									#SSL支持类型
-DWITH_BOOST=boost/boost_1_59_0						#Boost库源代码的位置
-DWITH_INNODB_MEMCACHED=ON							#启用InnoDB 存储引擎对 Memcached 的支持

 看到这个证明预编译完成,但还是需要检查一下编译过程中是否有提示某些依赖包未找到,如有错误,建议删除已解压的mysql目录,从解压步骤重新开始操作。

-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/tmp/mysql-5.7.42

5.编译安装

        这一步执行会比较慢,等待它执行完成即可,如果CPU是多核的可以使用make -jx,多线程进行编译

[root@wzh101 mysql-5.7.42]# make && make install

三、初始化数据库

1.创建相关目录

        编译安装完毕后,需要为MySQL创建相关目录

[root@wzh101 mysql-5.7.42]# cd /usr/local/mysql
[root@wzh101 mysql]# mkdir -p /usr/local/mysql/data
[root@wzh101 mysql]# mkdir -p /usr/local/mysql/tmp
[root@wzh101 mysql]# mkdir -p /usr/local/mysql/logs
[root@wzh101 mysql]# useradd -r -s /bin/nologin mysql
[root@wzh101 mysql]# chown -R mysql:mysql /usr/local/mysql

cd /usr/local/mysql                                        #打开MySQL所在目录
mkdir -p /usr/local/mysql/data                       #创建MySQL数据存储目录
mkdir -p /usr/local/mysql/tmp                        #创建socket套接字存放目录
mkdir -p /usr/local/mysql/logs                        #创建MySQL日志存放目录
useradd -r -s /bin/nologin mysql                     #创建一个用户,用来管理MySQL软件的运行
chown -R mysql:mysql /usr/local/mysql   #修改/usr/local/mysql下所有文件的所有者所属组为mysql

2.编辑MySQL配置文件

        根据需要修改配置

[root@wzh101 mysql]# vi /etc/my.cnf[client]                                                #客户端设置
port=3306                                               #服务器监听端口,默认为3306
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路径,默认/tmp/mysql.sock[mysqld]                                                #服务端设置
## 一般配置选项
port=3306                                               #服务器监听端口,默认为3306
basedir=/usr/local/mysql                                #MySQL安装根目录
datadir=/usr/local/mysql/data                           #MySQL数据文件目录
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路径,默认/tmp/mysql.sock
pid-file=/usr/local/mysql/tmp/mysql.pid                 #服务进程pid文件路径
character_set_server=utf8mb4                            #默认字符集
default_storage_engine=InnoDB                           #默认InnoDB存储引擎
user=mysqllog_error=/usr/local/mysql/logs/error.log               #错误日志存放路径

3.初始化MySQL

[root@wzh101 mysql]# bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

4.检查初始化是否成功

        在/usr/local/mysql/data目录存在这些文件,说明初始化成功

[root@wzh101 mysql]# ls data
auto.cnf    ca.pem           client-key.pem  ibdata1      ib_logfile1  performance_schema  public_key.pem   server-key.pem
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  mysql        private_key.pem     server-cert.pem  sys

四、使用systemctl命令管理MySQL

1.配置环境变量

        为MySQL配置环境变量

[root@wzh101 mysql]# echo export MYSQL_HOME=/usr/local/mysql >> /etc/profile
[root@wzh101 mysql]# echo export PATH=$MYSQL_HOME/bin:$PATH >> /etc/profile
[root@wzh101 mysql]# source /etc/profile

echo export MYSQL_HOME=/usr/local/mysql >> /etc/profile   #软件的路径
echo export PATH=$MYSQL_HOME/bin:$PATH >> /etc/profile   #命令的路径
source /etc/profile   #重新加载系统环境变量配置文件

2.systemctl命令管理MySQL

        复制配置文件到init.d目录使系统能够使使用systemctl命令管理MySQL

[root@wzh101 init.d]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@wzh101 init.d]# cd /etc/init.d/
[root@wzh101 init.d]# chmod +x mysql
[root@wzh101 init.d]# systemctl daemon-reload

3.启动MySQL

[root@wzh101 init.d]# systemctl start mysql
[root@wzh101 init.d]# systemctl status mysql
#mysql.service - LSB: start and stop MySQL
#   Loaded: loaded (/etc/rc.d/init.d/mysql; bad; vendor preset: disabled)
#   Active: active (running) since 二 2025-02-11 23:28:39 CST; 5s ago    ative证明MySQL已经启动成功

4.设置MySQL开启自动动

[root@wzh101 init.d]# chkconfig mysql on

5.设置MySQL命令

        设置软链接,把MySQL的命令都放在默认的命令里面,使得可以在系统的任何地方使用MySQL的命令

[root@wzh101 init.d]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

6.登录使用数据库

        自MySQL5.7版本起,MySQL初始有默认密码,存放在日志文件当中

[root@wzh101 init.d]# cat /usr/local/mysql/logs/error.log |grep root
#2025-02-11T15:16:33.756118Z 1 [Note] A temporary password is generated for root@localhost: jjB_&CF1=Pri

        冒号后面的是密码,复制密码,会提示请输入密码,将复制的密码粘贴,按回车即可登录MySQL

[root@wzh101 init.d]# mysql -u root -p

        登录MySQL后需要先修改密码,否则无法进行其他操作,set password=password('123456')

mysql> set password=password('123456');

至此,MySQL源码包安装成功,可以使用MySQL数据库了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16118.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络工程师 (32)TRUNK

一、定义 TRUNK,也称为端口汇聚、链路汇聚或多链路汇聚,是一种网络技术,其本质是将多个以太网端口绑定在一起作为一个逻辑链路来使用。通过TRUNK技术,用户在使用这个逻辑链路时,就好像是在使用一条独立的物理链路一样&…

“可通过HTTP获取远端WWW服务信息”漏洞修复

环境说明:①操作系统:windows server;②nginx:1.27.1。 1.漏洞说明 “可通过HTTP获取远端WWW服务信息”。 修复前,在“响应标头”能看到Server信息,如下图所示: 修复后,“响应标头…

编译和链接【三】

文章目录 编译和链接【三】前言系列文章入口编译过程词法分析语法分析语义分析生成中间代码汇编链接 编译和链接【三】 前言 在我大一的时候, 我使用VC6.0对C语言程序进行编译链接和运行 , 然后我接触了VS, Qt creator等众多IDE&#xff0c…

波导阵列天线学习笔记8 高增益、低轴比的3D打印Ka波段圆极化单脉冲天线阵列

摘要: 本文中, 一种3D打印的16x16圆极化单脉冲天线阵列在Ka波段研究,有着高增益和低轴比的特点。此单脉冲天线阵列有着四个低剖面的左旋圆极化子阵列和一个顺序旋转的和差网络。这四个子阵列正交连接着和差网络的输出,保证了传统2…

高通android WIFI debug

参考高通文档:80-76240-16_REV_AA_Wi-Fi_Debug_Techniques 大纲 一、 WLAN Debug Logs –logcat ■ Logcat log logcat is a command-line tool that dumps the log of system messages, ■ Including stack traces when the device throws an error. ■ Need t…

Pytest自动化测试框架总结

1、pytest简介 pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败能够支持简单的单元…

交叉编译工具链下载和使用

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

【SVN基础】

软件:ToritoiseSVN 代码版本回退:回退到上一个版本 问题:SVN版本已经提交了版本1和版本2,现在发现不需要版本2的内容,需要回退到版本1然后继续开发。 如图SVN版本已经提交到了107版本,那么本地仓库也已经…

作业:zuoye

1.闹钟&#xff08;错的&#xff09; #include "widget.h" #include "ui_widget.h" #include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 初始化定时器objTimer new QTimer(th…

一种非完全图下的TSP求解算法

序 旅行商问题(Traveling Salesman Problem,简称TSP)是组合优化中的一个经典问题,就是给定一组城市和城市之间的距离,找到一条最短路径使得每个城市只被访问一次后返回到起点。 一些传统的解法都是基于完全图的,我在网上也很少找到非完全图的解法,非完全图应该在实际应…

2025.2.11——一、[极客大挑战 2019]PHP wakeup绕过|备份文件|代码审计

题目来源&#xff1a;BUUCTF [极客大挑战 2019]PHP 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;目录扫描、爆破 step 2&#xff1a;代码审计 1.index.php 2.class.php 3.flag.php step 3&#xff1a;绕过__wakeup重置 ​编辑 三、小结…

Word成功接入DeepSeek详细步骤

原理 原理是利用Word的VBA宏&#xff0c;写代码接入API。无需下载额外插件。 步骤一、注册硅基流动 硅基流动统一登录 注册这个是为了有一个api调用的api_key&#xff0c;有一些免费的额度可以使用。大概就是这个公司提供token&#xff0c;我们使用这个公司的模型调用deepsee…

STM32_USART通用同步/异步收发器

目录 背景 程序 STM32浮空输入的概念 1.基本概念 2. STM32浮空输入的特点 3. STM32浮空输入的应用场景 STM32推挽输出详解 1. 基本概念 2. 工作原理 3. 应用场景 使能外设时钟 TXE 和 TC的区别 USART_IT_TXE USART_IT_TC 使能串口外设 中断处理函数 背景 单片…

Kafka的消费消息是如何传递的?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka的消费消息是如何传递的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka的消费消息是如何传递的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 的消息传递机制是基于 发布-订阅 模型…

活动预告 | Power Hour: Copilot 引领商业应用的未来

课程介绍 智能化时代&#xff0c;商业应用如何实现突破&#xff1f;微软全球副总裁 Charles Lamanna 将为您深度解析&#xff0c;剖析其中关键因素。 在本次线上研讨会中&#xff0c;Charles Lamanna 将分享他在增强商业运营方面的独到见解与实战策略&#xff0c;深度解读商业…

IPD项目管理是什么?

IPD项目管理&#xff0c;即整合项目交付管理&#xff0c;是一种创新的管理方式、强调团队协作、优化设计和施工过程的方法。这种管理模式的核心是整合所有项目参与者的专业技能和知识&#xff0c;从项目初始阶段就开始共同合作&#xff0c;以实现项目目标。它特别强调所有参与者…

支付宝安全发全套解决方案

产品价值 ● 通过支付宝的资金能力&#xff0c;让服务商机构通过信息流驱动资金流&#xff0c;在不碰触客户企业资金的同时&#xff0c;为客户企业完成转账。账目清晰&#xff0c;无合规和资质风险。 ● 为服务商提供全链路的资金流动明细信息&#xff0c;服务商可以将这些信息…

关于FANUC机器人示教器型号的说明

关于FANUC机器人示教器型号的说明 如下图所示&#xff0c; 示教器的型号为&#xff1a;A05B-2255-C102#ESW&#xff0c; 如果需要对示教器进行更换或维修测试&#xff0c;只需保证前面8位的型号保持一致即可&#xff0c; 例如下图中的型号&#xff0c; 只需保证A05B-2255-x…

计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

11vue3实战-----封装缓存工具

11vue3实战-----封装缓存工具 1.背景2.pinia的持久化思路3.以localStorage为例解决问题4.封装缓存工具 1.背景 在上一章节&#xff0c;实现登录功能时候&#xff0c;当账号密码正确&#xff0c;身份验证成功之后&#xff0c;把用户信息保存起来&#xff0c;是用的pinia。然而p…