Linux——安装软件(mysql)

news2024/11/14 0:21:01

一、应用部署:

  1. 安装软件 运行某个程序或者服务
    1. 安装软件包
      • dnf/yum 包安装工具
      • 官方网站提供的集成软件包
      • 源码编译安装      // 源码编译的步骤 只应用于编译型语言 对于解释性语言编写的程序 采用不用的方式打包
          1. 编译型语言编写的程序: nginx
          2. 解释性语言编写的程序:ansible   dnf
        1. 配置程序编译的参数
        2. 编译 根据第一步配置完成源码到二进制程序的编译  make
        3. 安装   make install
        4. 安装后配置步骤
    2. 容器化应用   镜像
  2. 修改配置
  3. 测试功能

例、mysql

mysql官方源码编译安装的步骤:

https://dev.mysql.com/doc/refman/8.4/en/source-installation.html

mysql源码编译的前置条件:

  1. cmake  一个全平台通用的编译框架,很多软件都是用cmake 完成编译环境配置
  2. make   编译工具   在很多平台上都可以直接安装make工具,mysql 安装时推荐使用GNU make  在有些平台上make命令是gmake 命令的别名    make 程序的版本最好在3.7.5以上
  3. mysql 8.4 使用了部分C++17的特性,最好升级c++17以体验更佳完成功能
    1. linux 操作系统   gcc10
  4. mysql 在编译时 还需要使用c++ 或者 c99 编译器
  5. mysql 8.0 开始所有的链接默认开启加密,所以编译时需要获取ssl 函数库的支持   openssl 以及 openssl-devel
  6. 还需要一个boost c++ 库,但是从mysql 8.3 开始源码包自带boost 代码
  7. ncurses 函数库 ncurses ncurses-devel
  8. 保证有充足的内存空间
  9. 测试脚本需要使用perl语言
  10. 源码包的解压工具
  11. bison > 2.1
  12. m4  
[root@bogon packages]# dnf -y install gcc gcc-c++ make 
[root@bogon bison-3.6.2]# pwd 
/usr/src/bison-3.6.2
[root@bogon bison-3.6.2]# dnf -y install m4     //bison 软件依赖
[root@bogon bison-3.6.2]# ./configure   // 观察输出是否提示缺少依赖库

在源码编译时,缺少依赖如何解决?

  1. yum provides */提示缺少的文件名
  2. 上网百度

进行bison的编译安装
[root@bogon bison-3.6.2]# make -j 2 && make install
[root@bogon bison-3.6.2]# bison --version 
bison (GNU Bison) 3.6.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

#### bison依赖安装完毕 ######

#### 安装cmake 编译框架 #####
[root@bogon bison-3.6.2]# cd /root/packages/
[root@bogon packages]# ls 
bison-3.6.2.tar.gz  cmake-3.30.2.tar.gz  mysql-8.4.2.tar.gz
[root@bogon packages]# tar -zxf cmake-3.30.2.tar.gz -C /usr/src/
[root@bogon packages]# cd /usr/src/cmake-3.30.2/
[root@bogon cmake-3.30.2]# ./bootstrap 

[root@bogon cmake-3.30.2]# dnf -y install openssl openssl-devel 
[root@bogon cmake-3.30.2]# ./bootstrap 
[root@bogon cmake-3.30.2]# make -j 2 && make install 

提示 这一步有进度条

#### cmake 安装完毕 ####

### 开始进行mysql 源码编译安装 ####
[root@bogon ~]# dnf -y install ncurses ncurses-devel 
[root@bogon ~]# 
[root@bogon ~]# cd packages/
[root@bogon packages]# tar -xzf mysql-8.4.2.tar.gz -C /usr/src/
[root@bogon packages]# cd /usr/src/mysql-8.4.2/
[root@bogon mysql-8.4.2]# ls 
client           Doxyfile-ignored   libchangestreams  MYSQL_VERSION      scripts        testclients
cmake            Doxyfile.in        libmysql          mysys              share          unittest
CMakeLists.txt   doxygen_resources  libs              packaging          sql            utilities
components       extra              libservices       plugin             sql-common     vio
config.h.cmake   include            LICENSE           README             storage
configure.cmake  INSTALL            man               router             strings
Docs             libbinlogevents    mysql-test        run_doxygen.cmake  support-files
[root@bogon mysql-8.4.2]# mkdir build
[root@bogon mysql-8.4.2]# cd build/
# gcc 编译工具支持
[root@bogon build]# yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc
# 依赖缺少
[root@bogon build]# dnf -y install libtirpc-devel
## 问题1: 这里的软件包安装不了
## 解决方案如下:
[root@bogon mysql]# dnf -y install epel-release 
Last metadata expiration check: 0:51:46 ago on Thu 29 Aug 2024 08:31:37 AM CST.
Package epel-release-9-7.el9.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@bogon mysql]# crb enable 
Enabling CRB repo
CRB repo is enabled and named: crb


[root@bogon build]# yum -y install rpcgen

清理cmake缓存
[root@bogon build]# rm -f CMakeCache.txt
cmake  .. 				// 指明软件代码路径
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 		// mysql 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data 			// mysql 数据库目录
-DWITH_SSL=system 							// ssl 函数库位置 system使用系统默认
//此处值为路径时,指定ssl的安装路径
-DWITH_ZLIB=bundled 							// zlib 库的位置 使用源码库自带
// 值为路径时,指定zlib库的位置
-DWITH_INNOBASE_STORAGE_ENGINE=1 			// 安装时默认启动哪些存储引擎
// 启动innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 			
-DWITH_MYISAM_STORAGE_ENGINE=1 			
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DENABLED_LOCAL_INFILE=1 					// 启用infile支持
-DWITH_DEBUG=0 								// 使用启用debug 功能的
-DMYSQL_TCP_PORT=3306 						// mysql tcp端口号
-DMYSQL_UNIX_ADDR=/usr/local/mysq/l/run/mysqld.sock // mysql 套接字
-DDEFAULT_CHARSET=utf8mb4 					// 默认字符集
-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci 		// 扩展字符集
-DWITH_SYSTEMD=1							// 启用systemd 支持 
[root@bogon build]# cmake  .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_SSL=system -DWITH_ZLIB=bundled -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_DEBUG=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysq/l/run/mysqld.sock -DDEFAULT_CHARSET=utf8mb4  -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci -DWITH_SYSTEMD=1 

[root@bogon build]# make -j 2 

# make 编译过程中 因为意外或者任何原因中断编译,可以在编译目录下,重新运行make

#指令,继续在上一次中断的地方继续编译

# make 执行过程中 也会因为缺少依赖等报错

# 内存不足   通过free 查看内存使用情况  可用该内存大小不低于50M 则与内存无关

# 调用的逻辑核心数过多,为了加快编译速度而同时避免因为争抢CPU 资源出现问题,建

# 议调用核心数,相对于逻辑核心数减少1-2 (lscpu 查看CPU 基本信息)

# 清理编译缓存  make clean

[root@bogon build]# make install

// 检查安装指令执行结果

[root@bogon build]# echo $?

 二、安装后部署

1、创建程序用户账号(这一步可以在编译前完成)
[root@bogon build]#  groupadd mysql
[root@bogon build]# useradd -r -g mysql -s /bin/false mysql
2、确保mysql 相关目录的正确权限
[root@bogon build]# cd /usr/local/mysql/
[root@bogon mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@bogon mysql]# mkdir mysql-files 
[root@bogon mysql]# chown mysql.mysql mysql-files/
[root@bogon mysql]# chmod 750 mysql-files/

3、初始化mysql 数据
[root@bogon mysql]# vim /etc/profile 
// 打开文件后,按下大写的GG 直接锁定文本最后一行,按下o开启新一行输出
PATH=$PATH:/usr/local/mysql/bin
// 然后保存退出,注意此文件修改错误,可能导致大量命令失效,谨慎修改
[root@bogon mysql]# source  /etc/profile   
[root@bogon mysql]# echo $PATH
/root/.local/bin:/root/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin
[root@bogon mysql]# 
[root@bogon mysql]# mysqld --initialize --user=mysql 
2024-08-29T01:02:54.106027Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-08-29T01:02:54.116997Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.4.2-debug) initializing of server in progress as process 14917
2024-08-29T01:02:54.188591Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-08-29T01:02:55.289367Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-08-29T01:03:02.452228Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Kd:(#fUsS6H(   // 临时密码,每个人不一样

2024-08-29T01:03:16.607332Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
[root@bogon mysql]# 
[root@bogon mysql]# echo 'Kd:(#fUsS6H(' >> /root/root_temp
初始化后,出现data 目录

4、尝试启动mysql 进程
[root@bogon mysql]# mysqld_safe --user mysql &
[1] 15004
[root@bogon mysql]# Logging to '/usr/local/mysql/data/bogon.err'.
2024-08-29T01:06:06.747831Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@bogon mysql]# ps -elf | grep mysql 
4 S root       15004    2171  0  80   0 - 55697 do_wai 09:06 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user mysql
4 S mysql      15108   15004 15  80   0 - 483905 do_pol 09:06 pts/0   00:00:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --user mysql --log-error=bogon.err --pid-file=bogon.pid
0 S root       15155    2171  0  80   0 - 55417 pipe_r 09:06 pts/0    00:00:00 grep --color=auto mysql
[root@bogon mysql]# mysql -u root -p$(cat /root/root_temp)
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.2-debug

Copyright (c) 2000, 2024, 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> alter user root@localhost identified by 'redhat1~';   // 修改密码
Query OK, 0 rows affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.03 sec)

mysql> create database webapp;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| webapp             |
+--------------------+
5 rows in set (0.01 sec)

mysql> exit
Bye

5、使用systemctl 控制服务启动
[root@bogon mysql]# ls usr/lib/systemd/system/
mysqld.service  mysqld@.service  mysqlrouter.service
[root@bogon mysql]# cp  /usr/local/mysql/usr/lib/systemd/system/* /usr/lib/systemd/system/
[root@bogon mysql]# systemctl daemon-reload 
[root@bogon mysql]# killall mysqld
[root@bogon mysql]# killall mysqld
[root@bogon mysql]# 2024-08-29T01:13:04.137062Z mysqld_safe mysqld from pid file /usr/local/mysql/data/bogon.pid ended

[1]+  Done                    mysqld_safe --user mysql
[root@bogon mysql]# 
[root@bogon mysql]# pwd 
/usr/local/mysql
[root@bogon mysql]# ls run/
[root@bogon mysql]# ls data/*.pid
ls: cannot access 'data/*.pid': No such file or directory
[root@bogon mysql]# systemctl start mysqld.service
[root@bogon mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; preset: disabled)
     Active: active (running) since Thu 2024-08-29 09:14:19 CST; 5s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 15382 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
   Main PID: 15448 (mysqld)
     Status: "Server is operational"
      Tasks: 35 (limit: 24434)
     Memory: 454.5M
        CPU: 12.488s
     CGroup: /system.slice/mysqld.service
             └─15448 /usr/local/mysql/bin/mysqld

Aug 29 09:14:16 bogon mysqld_pre_systemd[15411]: 2024-08-29T01:14:16.449419Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
Aug 29 09:14:16 bogon mysqld[15448]: 2024-08-29T01:14:16.501034Z 0 [System] [MY-015015] [Server] MySQL Server - start.
Aug 29 09:14:16 bogon mysqld[15448]: 2024-08-29T01:14:16.760249Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.4.2-debug) starting as>
Aug 29 09:14:16 bogon mysqld[15448]: 2024-08-29T01:14:16.782453Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
Aug 29 09:14:17 bogon mysqld[15448]: 2024-08-29T01:14:17.536247Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
Aug 29 09:14:19 bogon mysqld[15448]: 2024-08-29T01:14:19.481641Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
Aug 29 09:14:19 bogon mysqld[15448]: 2024-08-29T01:14:19.481734Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted conn>
Aug 29 09:14:19 bogon mysqld[15448]: 2024-08-29T01:14:19.751956Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 330>
Aug 29 09:14:19 bogon mysqld[15448]: 2024-08-29T01:14:19.753196Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version:>
Aug 29 09:14:19 bogon systemd[1]: Started MySQL Server.
[root@bogon mysql]# mysql -u root -p'redhat1~'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.2-debug Source distribution

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Verilog刷题笔记63

找BUG 1、:Bug mux2 挑错: module top_module (input sel,input [7:0] a,input [7:0] b,output [7:0]out );assign out sel?a:b;endmodule结果正确: 原因: 1、输出out也应为8位 2、逻辑错误,&按位操作,需要将…

【可兼容的】protobuf、streamlit、transformers、icetk、cpm_kernels版本号

搞大模型训练的工作不可避免地需要很多库,但是非常讨厌的事情是这些库动不动就不兼容。最近在做文本分类训练的时候又遇到了这个问题,为了避免后面再安装包的时候把我之前的环境破坏了,所以特地来记录一下:protobuf、streamlit、t…

GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解

GD32F4xx—RTC初始化设置及闹钟方式实现秒中断讲解 1、下载链接:源码工程 一、概述 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BC…

欧科云链: Web3浪潮下合规是“必选项”, 技术创新成发展重点

如果说2023年将是Web3的监管与合规之年。那么2024年就是Web3发展里程碑之年。 自2023年,包括美国、日本、新加坡、迪拜、中国香港等全球多个国家和地区金融中心都先后宣布要成为Web3中心、虚拟资产中心,并努力在监管框架下推动Web3生态的技术创新。 放…

对新手的现货白银交易建议

近期现货白银价格表现十分不错,连续的上涨已经突破了30关口,这是一个重要的心理关口,受投资行情的吸引,很多新手现货白银交易者入场。那么,有没有一些对这些新手投资者的现货白银交易建议呢?下面我们就来讨…

通过Docker部署Nacos,以及Docker Desktop进行管理

目录 一.不需要持久化存储 1.启动容器 2.查看容器和镜像​ 3.容器管理 二.持久化存储启动mysql容器 1.创建docker卷 2.运行容器,指定卷 3.在nacos里面随便建个配置文件 4.停止并删除nacos容器 5.重新运行容器,并且挂载相同的卷,也就是上面第二步的命令 6.打开nacos并…

redis的紧凑列表ziplist、quicklist、listpack

文章目录 前言一、ziplist1.1 ziplist 查找复杂度高1.2 ziplist 连续更新风险 二、quicklist三、listpack 前言 当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续…

2024年用哪个思维导图软件好?这款在线工具堪称国产之光!

思维导图软件哪个好? 如今已经是2024年了,想做思维导图,面对琳琅满目的思维导图软件,哪一个才是最适合我们的呢? 在选用思维导图软件时,我们可能会综合考虑多个方面,譬如功能数量、操作易用性…

未来工作场所:知识中台与AI的融合

在快速迭代的未来工作场所,知识中台与AI的融合正引领着一场深刻的工作方式变革。这种融合不仅优化了企业的知识管理流程,还通过智能工具如AI问答、内容生成等,极大地提升了工作效率和决策质量。接下来,我们将以HelpLook AI知识库为…

【C/C++】C++类与对象基本概念(抽象与封装、构造函数、析构函数、静态、友元)

文章目录 七、类与对象基本概念抽象定义与声明访问控制类的实现与使用对象指针、this指针与对象引用构造函数析构函数拷贝构造函数 七、类与对象基本概念 抽象 抽象是相对,而非绝对的 在研究问题时,侧重点不同,可能会产生不同的抽象结果;解决…

解密低代码:持续更新的必要性与背后驱动力

在数字化转型的浪潮中,低代码(Low-Code)开发平台已经成为企业快速构建应用程序的重要工具。低代码平台通过图形化界面和少量手写代码,帮助开发者和业务人员在短时间内构建复杂应用。然而,随着技术的不断演进和业务需求…

【C#】Visual Studio代码格式化方法

1. 快捷键 选中内容后,先键入 ctrlk 再键入 ctrlf(注意:Visual Studio中标注两个快捷键的都是这样使用) 2. 工具栏 编辑 - 高级 - 设置选定内容的格式

mp3格式转换器免费版来袭,告别格式限制,音乐更自由!

当下,mp3格式可以说是音频文件的主流格式。无论是通过耳机、音箱还是车载音响,我们都在使用mp3格式来播放收听音乐。智能手机、平板电脑等移动设备上通常内置mp3播放器。mp3经常在视频剪辑中充当背景音乐和特效音效。 为什么mp3格式如此普遍&#xff1f…

PHP高效易用在线简单商城系统小程序源码

🚀高效易用的在线简单商城系统,让电商创业轻松启航🛍️ 🌈 一键开店,轻松上手 还在为繁琐的电商开店流程头疼吗?高效易用的在线简单商城系统,让你告别复杂设置,一键开启你的电商之旅…

leetcode日记(73)分隔链表

简单,但是链表问题容易犯错 第一次错误:每次遍历到小于x的节点移动到前面后都需要将a向后移动到移动后的该节点处,使得后面移动的节点都能移动到该节点后 第二次错误:看错了题目,需要从头开始遍历 第三次错误&#…

死抠细节!在ChatGPT的帮助下让论文精益求精!

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在撰写毕业论文的过程中,细节往往决定成败。无论是结构的合理性、论点的清晰度,还是语言的精准表达,每一个细节都影响着论文的最终质量。今天分享的内…

解决世界500强跨域跨境数据文件传输丢包严重、高延迟等问题

在当今全球化的商业环境中,大型跨国公司如世界500强企业,面临着跨地域数据传输的挑战。这些挑战包括数据包丢失、网络延迟、成本上升以及数据安全风险。传统的数据传输方法已难以满足这些企业对效率和安全性的需求。那么,如何为这些企业找到一…

虚拟机安装+xftp+xshell

1、VMware安装 下载VM,可以直接去官网下载,也可以直接提取我的网盘链接 通过百度网盘分享的文件:vmware 链接:百度网盘 请输入提取码 提取码:ms01 --来自百度网盘超级会员V2的分享 没有百度网盘会员的这里也有123…

vue3+vite项目中引入path模块报错

报错描述:Module "path" vite-browser-exter...h?t1700468860286:3 has been externalized for browser compatibility. Cannot access "path.resolve" in client code. 问题原因:vite 源码中设定了不允许在客户端代码中访问内置模…

STL中queue、stack的实现与容器适配器的讲解

目录 简介 栈(Stack) 队列(Queue) 实现 栈的实现 队列的实现 deque的讲解 deque的结构示意图 简介 栈(Stack)和队列(Queue)是两种基本的数据结构,在STL&#xff0…