当前位置: 首页 > 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 数据分析认证考试…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...