当前位置: 首页 > news >正文

MySQL的源码安装及基本部署(基于RHEL7.9)

这里源码安装mysql的5.7.44版本

一、源码安装

1.下载并解压mysql , 进入目录:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz
tar xf mysql-boost-5.7.44.tar.gz
cd mysql-5.7.44/

2.准备好mysql编译安装依赖:

yum install cmake gcc-c++ openssl-devel ncurses-devel rpcgen  -y
yum install  libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm #需到第三方仓库去找找

  可以用阿里云的链接下载https://mirrors.aliyun.com/centos-vault/7.7.1908/os/x86_64/Packages/libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm​​​​​​​

3.添加参数选项:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_BOOST=/root/mysql-5.7.44/boost/boost_1_59_0

   选项的详细解释如下:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径
-DMYSQL_DATADIR=/data/mysql \ #指定数据目录
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ #指定套接字文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #指定启用INNODB存储引擎,默认用myisam
-DWITH_EXTRA_CHARSETS=all \ #扩展字符集
-DDEFAULT_CHARSET=utf8mb4 \ #指定默认字符集
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \ #指定默认校验字符集
-DWITH_BOOST=/root/mysql-5.7.44/boost/boost_1_59_0/ #指定c++库依赖

4.开始编译安装:

尽量使用-j指定多线程进行编译以加快速度,但是要注意物理CPU数量以及内存大小,以及留有一定磁盘空间来安装mysql 一般(2-15min) 

make -j16 && make install

如编译过程出错、或者中断.Cmake 工具可以继续编译,得益于CMakeCache.txt的缓存记录.

如果想重新编译改变参数的话,需要将CMakeCache.txt先删除掉再进行编译,否则会采用之前的记录继续.

查看下大小
[root@mysql_node1 ~]# du -sh /usr/local/mysql/
1.9G        /usr/local/mysql/

二、Mysql的部署

在编译完成后即可进行mysql的部署

不能提前装有mysql类似软件!!! ⚠️  如果安装前有mysql环境一定要清理干净,再进行安装.

按照以下步骤依次操作即可:

#编译完成后:
#拷贝mysql启动程序文件 到 启动脚本目录
[root@mysql_node1 ~]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld#添加mysql的bin目录环境变量
[root@mysql_node1 ~]# vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
[root@mysql_node1 ~]# source ~/.bash_profile#编辑mysql配置文件
[root@mysql_node1 ~]# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql               #mysql的数据目录
socket=/data/mysql/mysql.sock     #mysql的套接字文件路径
symbolic-links=0                  #禁用mysql创建或者使用符号链接#创建数据目录并授权给mysql用户 如果mysql用户不存在则创建一个( useradd -s /sbin/nologin  -M mysql   )
[root@mysql_node1 ~]# mkdir -p  /data/mysql
[root@mysql_node1 ~]# chown -R mysql.mysql /data/mysql/#以mysql用户身份初始化mysql数据库 
[root@mysql_node1 ~]# mysqld --initialize --user=mysql      
2024-08-22T13:29:13.656433Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-08-22T13:29:13.763601Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-08-22T13:29:13.786517Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-08-22T13:29:13.849416Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 85cf7691-608a-11ef-a7c1-001c4294cf16.
2024-08-22T13:29:13.851008Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-08-22T13:29:13.981298Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-08-22T13:29:13.981313Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-08-22T13:29:13.981701Z 0 [Warning] CA certificate ca.pem is self signed.
2024-08-22T13:29:13.996329Z 1 [Note] A temporary password is generated for root@localhost: h!y_tT)pu4hx     #生成的随机临时密码, 只能用一次,即失效需要立即重新设置root账户密码才OK.  #启动mysqld服务
[root@mysql_node1 ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/mysql_node1.err'.SUCCESS!#使用chkconfig 工具使mysqld服务开机启动
[root@mysql_node1 ~]# chkconfig mysqld on#进行mysql安全初始化
[root@mysql_node1 ~]# mysql_secure_installationSecuring the MySQL server deployment.Enter password for user root: #这里输入刚刚的临时密码The existing password for the user account root has expired. Please set a new password.New password:  #设置root密码Re-enter new password:VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?                  #加载mysql密码安全插件,会使得密码必须复杂,试验环境一般不加.Press y|Y for Yes, any other key for No: n
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n      #不改变root密码,因为刚刚已经设置了.... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : y      #是否禁用root用户远程登录,安全起见一般禁用.
Success.By default, MySQL 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? (Press y|Y for Yes, any other key for No) : y    #是否删除test数据库,一般不需要.- 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? (Press y|Y for Yes, any other key for No) : y         #是否现在重载表的权限,是
Success.All done!#登录测试mysql
[root@mysql_node1 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.44 Source distributionCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql启动 关闭 重启 

/etc/init.d/mysqld start stop restart

数据目录的含义

[root@mysql_node1 ~]# ll /data/mysql/auto.cnf: MySQL 的自动配置文件,通常用于存储一些自动生成的配置参数。
ca-key.pem, ca.pem: 用于创建和管理用于 SSL 加密连接的证书颁发机构 (CA) 的密钥和证书文件。
client-cert.pem, client-key.pem: 用于客户端连接到 MySQL 服务器时的客户端 SSL 证书和密钥文件(如果启用)。
ib_buffer_pool: 用于缓存 InnoDB 存储引擎经常访问的数据的 InnoDB 缓冲池文件。
ibdata1: InnoDB 存储引擎的数据文件,其中存储了数据库表中的数据。
ib_logfile0, ib_logfile1: InnoDB 存储引擎的 InnoDB redo log 文件,用于记录事务的更改,以实现崩溃恢复。
ibtmp1: InnoDB 存储引擎的临时文件。
mysql/: 子目录,包含 MySQL 服务器本身的一些数据文件,例如权限信息和日志文件。
mysql_node1.err: MySQL 服务器的错误日志文件。
mysql_node1.pid: MySQL 服务器的进程 ID 文件。
mysql.sock: 用于本地进程之间通信的 MySQL 套接字文件。
mysql.sock.lock: 用于锁定 mysql.sock 文件的锁定文件。
performance_schema/: 子目录,包含用于性能分析的性能架构数据文件。
private_key.pem: 用于服务器端 SSL 加密连接的服务器私钥文件。
public_key.pem: 用于服务器端 SSL 加密连接的服务器公钥文件。
server-cert.pem: 用于服务器端 SSL 加密连接的服务器证书文件。
server-key.pem: 用于服务器端 SSL 加密连接的服务器私钥文件。
sys/: 子目录,包含一些内部系统文件。

以上步骤完成,即可正常使用mysql了👍🎉

相关文章:

MySQL的源码安装及基本部署(基于RHEL7.9)

这里源码安装mysql的5.7.44版本 一、源码安装 1.下载并解压mysql , 进入目录: wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz tar xf mysql-boost-5.7.44.tar.gz cd mysql-5.7.44/ 2.准备好mysql编译安装依赖: yum install cmake g…...

RUP-系统架构师(五十六)

1在RUP中采用“41”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(),系统工程师侧重于()。 问题1 问题2 A 实现视图 B 进程视图 C 逻辑视图 D 部署视图 解析: RUP有 逻辑…...

【大模型系列篇】人工智能与智能计算的发展

🔥🔥🔥 来自 中国工程院院士、中国科学院计算技术研究所研究员 孙凝晖 第十四届全国人大常委会专题讲座上的讲稿《人工智能与智能计算的发展》 “把新一代人工智能作为推动科技跨越发展、 产业优化升级、生产力整体跃升的驱动力量&#xff0c…...

C++ | Leetcode C++题解之第365题水壶问题

题目&#xff1a; 题解&#xff1a; class Solution { public:bool canMeasureWater(int x, int y, int z) {if (x y < z) {return false;}if (x 0 || y 0) {return z 0 || x y z;}return z % gcd(x, y) 0;} };...

c++-类(中)

c-类&#xff08;中&#xff09; 一、类的默认成员函数1.1 什么是默认成员函数&#xff1f;1.2 默认成员函数有哪些&#xff1f; 二、构造函数2.1 什么是构造函数&#xff1f;2.2 构造函数的特点 三、析构函数3.1 什么是析构函数&#xff1f;3.2 析构函数的特点 四、拷贝构造函…...

在 Python 中查找列表中的重复元素

在 Python 中查找列表中的重复元素 在数据处理和分析中,查找重复元素是一个常见的任务。无论是在数据清洗、用户输入验证还是统计分析中,识别和处理重复数据都是至关重要的。在 Python 中,有多种方法可以查找列表中的重复元素。本文将详细介绍这些方法,包括示例代码、性能…...

Kafka【一】Windows下安装单节点Kafka

① 下载 下载软件安装包&#xff1a;kafka_2.12-3.6.1.tgz&#xff0c;下载地址&#xff1a;https://kafka.apache.org/downloads 这里的3.6.1&#xff0c;是Kafka软件的版本。截至到2023年12月24日&#xff0c;Kafka最新版本为3.6.1。2.12是对应的Scala开发语言版本。Scala2…...

基于深度学习的分子生成

基于深度学习的分子生成是一项结合化学、计算科学与人工智能的新兴领域&#xff0c;旨在利用深度学习模型来生成具有特定性质的分子结构。该技术在药物发现、材料科学和合成化学等领域具有广泛的应用前景。以下是详细的介绍&#xff1a; 1. 背景与动机 化学空间的广阔性&#…...

python——并行设计

在 Python 中&#xff0c;通过并行设计可以提高程序的效率&#xff0c;特别是在需要处理大量数据或进行耗时操作时。并行设计的基本思想是通过分配任务给多个线程或进程&#xff0c;利用多核 CPU 的计算能力&#xff0c;来同时执行多个任务&#xff0c;从而缩短总的执行时间。 …...

系统架构设计师——软件架构基本概念

基本概念 **软件架构是软件开发中的一个核心概念&#xff0c;它主要关注软件构件的结构、属性和交互作用。**以下是对软件架构的详细解读&#xff1a; 结构&#xff1a;软件架构定义了软件系统的基本结构&#xff0c;包括各个组件、模块和类的关系。这些元素如何组织和相互连…...

证书学习(二)搞懂 keystore、jks、p12、pfx、crt、csr、pem文件的区别

目录 一、背景二、文件格式的区分2.1 .keystore / .jks 文件2.2 .p12 / .pfx 文件2.3 .crt 文件2.4 csr 文件2.5 .pem 文件 三、总结 一、背景 我们在日常的开发过程中&#xff0c;经常会见到各种各样的证书相关类型的文件&#xff0c;错综复杂。 其实 keystore、jks、p12、p…...

基于python的在线自主评测系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

Centos安装Jenkins教程详解版(JDK8+Jenkins2.346.1)

本教程基于 JDK8 和 Jenkins2.346.1 JDK安装 下载OpenJDK8文件 wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz解压到指定目录 # 创建目录 mkdir -p /usr/local/software# 解压文件到指定目录&#…...

聚类分析|距离与相似系数|层次聚类|K均值聚类|SPSS及Matlab

聚类分析问题描述 聚类分析问题描述 人类认识世界的方法之一就是将事物按照各种属性或特征分成若干类别。 物以类聚、人以群分。分类方法多种多样&#xff0c;简单直接的如高、矮、胖瘦。使用的信息量小&#xff0c;但对类别界限附近的案例&#xff0c;分类结果不一定合适。 …...

Linux中安装java和tomcat(保姆级教程)

java 篇 JDK是用于开发Java应用程序的软件开发工具包。它包含了编译器、调试器、运行时环境和其他一些开发工具&#xff0c;可以帮助开发人员创建、编译、调试和部署Java应用程序。JDK提供了Java编程语言的开发工具和运行时库&#xff0c;使开发人员能够编写和执行Java代码。 …...

Vue组件库Element和Vue路由

目录 一、Vue组件库Element&#xff08;学会怎么CV&#xff09; 快速入门 ElementUI的常用组件 1.Table表格 &#xff08;1&#xff09;组件演示 &#xff08;2&#xff09;组件属性详解 2.Pagination分页 &#xff08;1&#xff09;组件演示 &#xff08;2&#xff0…...

网络编程,网络协议,UDP编程

网络&#xff1a; 1.协议&#xff1a;通信双方约定的一套标准 2.国际网络通信协议标准&#xff1a; 1.OSI协议&#xff1a; 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 …...

通过访存地址获取主存数据的过程

目录 1.根据访存地址在Cache中查找数据 2.如果在Cache中命中 3.如果没有命中 4.数据送CPU 5.做几道题&#xff1a; 主要厘清思路&#xff0c;中间细节需自行补充! 1.根据访存地址在Cache中查找数据 ① 访存地址的结构会根据Cache和主存之间的映射方式不同而改变。映射方式…...

sqlite3交叉编译问题(对‘fcntl64@GLIBC_2.28’未定义的引用)

使用rk3568的编译器交叉编译程序&#xff0c;报如下错误&#xff1a; libsqlite3.so&#xff1a;对‘fcntl64GLIBC_2.28’未定义的引用 libsqlite3.so&#xff1a;对‘logGLIBC_2.29’未定义的引用在网上查了下这个问题的原因可能是在GLIBC库2.28版本中&#xff0c; "fcn…...

每天一个数据分析题(四百九十六)- 决策树模型

回归树是可以用于回归的决策树模型&#xff0c;一个回归树对应着输入空间&#xff08;即特征空间&#xff09;的一个划分以及在划分单元上的输出值。以下哪个指标可用于回归树中的模型比较 A. Adjusted R2 B. F-measure C. AUC D. Precision & Recall 数据分析认证考试…...

MediaCreationTool.bat:终极Windows安装自动化工具,三步完成系统部署

MediaCreationTool.bat&#xff1a;终极Windows安装自动化工具&#xff0c;三步完成系统部署 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaC…...

My-TODOs:免费开源的跨平台桌面待办清单应用终极指南

My-TODOs&#xff1a;免费开源的跨平台桌面待办清单应用终极指南 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 在信息爆炸的时代&#xff0c;高效管理日常任务已成为提…...

步进电机电流闭环控制软件:自动计算电流环kp和ki,高频率PWM,支持modbus通信,位置与...

步进电机电流闭环控制软件&#xff1a; 电流闭环&#xff0c;电流环kp和ki自动计算&#xff1b; PWM频率&#xff0c;电流环计算频率&#xff0c;16kHz&#xff1b; modbus通信&#xff1b; 位置模式和速度模式。&#xff08;面向现场工程师与维护人员&#xff09;0 前言 这份文…...

Windows 10/11下快速搞定Netcat安装:从下载到测试的完整指南

Windows 10/11下快速搞定Netcat安装&#xff1a;从下载到测试的完整指南 在Windows环境下进行网络应用开发时&#xff0c;经常需要测试TCP/UDP连接或模拟简单的客户端/服务器交互。虽然Linux系统自带netcat工具&#xff0c;但频繁切换操作系统环境会打断开发节奏。本文将手把手…...

用51单片机+L298N驱动板实现直流电机PID调速(附完整代码)

从零构建51单片机L298N的直流电机PID控制系统&#xff1a;实战指南与代码解析 在创客和机器人开发领域&#xff0c;精确控制直流电机转速是一个基础但关键的技术挑战。想象一下&#xff0c;当你需要制作一个自动平衡小车或者精确控制传送带速度时&#xff0c;简单的开环控制往往…...

DataGrip高效操作指南(动图演示版)

1. DataGrip入门&#xff1a;从安装到第一个连接 第一次打开DataGrip时可能会被满屏的英文界面吓到&#xff0c;但别担心&#xff0c;这玩意儿用起来比看起来简单多了。我当年从Navicat转过来的时候也适应了两天&#xff0c;现在回头看看简直像从自行车换到了跑车。安装包直接去…...

RWKV7-1.5B-G1A模型推理服务监控与告警体系搭建

RWKV7-1.5B-G1A模型推理服务监控与告警体系搭建 1. 为什么模型服务需要监控体系 在AI模型服务投入生产环境后&#xff0c;最让人头疼的问题往往不是模型效果&#xff0c;而是服务稳定性。想象一下&#xff0c;半夜三点突然接到报警电话&#xff0c;说线上推理服务挂了&#x…...

sslscan实战:5个真实场景教你检测TLS安全漏洞

sslscan实战&#xff1a;5个真实场景教你检测TLS安全漏洞 【免费下载链接】sslscan sslscan tests SSL/TLS enabled services to discover supported cipher suites 项目地址: https://gitcode.com/gh_mirrors/ss/sslscan sslscan是一款强大的SSL/TLS安全检测工具&#…...

Wand-Enhancer:彻底解锁WeMod专业功能的终极解决方案

Wand-Enhancer&#xff1a;彻底解锁WeMod专业功能的终极解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer Wand-Enhancer是一款专为WeMod游戏辅助…...

如何用3分钟将B站视频转成文字稿?这个免费开源工具让你告别手动记录

如何用3分钟将B站视频转成文字稿&#xff1f;这个免费开源工具让你告别手动记录 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经面对长达几小时的B…...