RockyLinux9编译安装MySQL5.7

原文链接:RockyLinux9编译安装MySQL5.7 - Liu Zijian's Blog | 刘子健的博客

本文最后更新于 2024年12月15日

使用源码编译安装MySQL5.7

1.下载

打开MySQL-Community-Server官方下载页面:https://downloads.mysql.com/archives/community/

筛选出要下载的版本,Product Version选择5.7.44,也就是最后一个小版本,Operating System选择Source CodeOS Version选择All,然后选择最后一个自带boost的MySQL源码包(mysql-boost-5.7.44.tar.gz),进行下载,并将下载到的源码包先放到服务器的/opt目录下。

  • mysql-boost-5.7.44.tar.gz

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

解压tar包,得到文件夹mysql-5.7.44,里面就是MySQL源码和一些构建信息

[root@localhost opt]# cd mysql-5.7.44/
[root@localhost mysql-5.7.44]# ll
total 528
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 BUILD
-rw-r--r--.  1 7161 31415  29939 Oct 11  2023 CMakeLists.txt
drwxr-xr-x.  2 7161 31415     98 Oct 11  2023 Docs
-rw-r--r--.  1 7161 31415  67369 Oct 11  2023 Doxyfile-perfschema
-rw-r--r--.  1 7161 31415    333 Oct 11  2023 INSTALL
-rw-r--r--.  1 7161 31415 260678 Oct 11  2023 LICENSE
-rw-r--r--.  1 7161 31415    566 Oct 11  2023 README
-rw-r--r--.  1 7161 31415     88 Oct 11  2023 VERSION
drwxr-xr-x.  3 7161 31415     26 Oct 11  2023 boost
drwxr-xr-x.  6 7161 31415   4096 Oct 11  2023 client
drwxr-xr-x.  4 7161 31415   4096 Oct 11  2023 cmake
-rw-r--r--.  1 7161 31415  14584 Oct 11  2023 config.h.cmake
-rw-r--r--.  1 7161 31415  25217 Oct 11  2023 configure.cmake
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 dbug
drwxr-xr-x.  8 7161 31415   4096 Oct 11  2023 extra
drwxr-xr-x.  5 7161 31415   4096 Oct 11  2023 include
drwxr-xr-x.  5 7161 31415    135 Oct 11  2023 libbinlogevents
drwxr-xr-x.  3 7161 31415     39 Oct 11  2023 libbinlogstandalone
drwxr-xr-x.  4 7161 31415   4096 Oct 11  2023 libmysql
drwxr-xr-x.  3 7161 31415   4096 Oct 11  2023 libmysqld
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 libservices
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 man
drwxr-xr-x. 10 7161 31415   4096 Oct 11  2023 mysql-test
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 mysys
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 mysys_ssl
drwxr-xr-x. 10 7161 31415    131 Oct 11  2023 packaging
drwxr-xr-x. 18 7161 31415   4096 Oct 11  2023 plugin
drwxr-xr-x.  4 7161 31415     36 Oct 11  2023 rapid
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 regex
drwxr-xr-x.  4 7161 31415   4096 Oct 11  2023 scripts
drwxr-xr-x.  2 7161 31415      6 Oct 11  2023 source_downloads
drwxr-xr-x.  8 7161 31415  20480 Oct 11  2023 sql
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 sql-common
drwxr-xr-x. 13 7161 31415    175 Oct 11  2023 storage
drwxr-xr-x.  2 7161 31415   4096 Oct 11  2023 strings
drwxr-xr-x.  4 7161 31415   4096 Oct 11  2023 support-files
drwxr-xr-x.  2 7161 31415     98 Oct 11  2023 testclients
drwxr-xr-x.  5 7161 31415     70 Oct 11  2023 unittest
drwxr-xr-x.  3 7161 31415   4096 Oct 11  2023 vio
drwxr-xr-x.  2 7161 31415     32 Oct 11  2023 win

进入boost/文件夹下,可以看到目前版本依赖的boost版本是哪个,一会编译时会用到。

[root@localhost mysql-5.7.44]# cd boost/
[root@localhost boost]# ll
total 0
drwxr-xr-x. 3 7161 31415 19 Oct 11  2023 boost_1_59_0

2.编译安装前准备

1.新添加一个用户: mysql

useradd mysql

2.安装编译所需要的软件包依赖

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

在Rocky9上,有的依赖包没有自带,也无法通过yum安装,需要下载.rpm到本地,然后通过rpm -ivh安装

  • libtirpc-devel-1.3.3-9.el9.x86_64.rpm

    https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/l/libtirpc-devel-1.3.3-9.el9.x86_64.rpm

  • rpcgen-1.4-9.el9.x86_64.rpm

    https://dl.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/Packages/r/rpcgen-1.4-9.el9.x86_64.rpm

3./usr/local/下必须新建文件夹mysql

mkdir /usr/local/mysql

3.编译安装

1.在源码目录下执行cmake命令,进行编译前的检查和配置,使用CMake配置和生成MySQL源码编译所需的构建系统文件,安装MySQL到/usr/local/mysql目录下,-DWITH_BOOST=的路径根据源码包内自带boost的版本而定,默认端口3306,数据路径/usr/local/mysql/data,字符集utf8mb4

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/usr/local/mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=boost/boost_1_59_0/

2.cmake命令执行成功后,执行以下make命令开始编译安装

make && make install

执行后,开始编译,不断输出日志,编译的过程很耗时间,需要等待很久,编译完成后,可以在/usr/local/mysql目录下看到编译好的MySQL

[root@localhost mysql-5.7.44]# cd /usr/local/mysql/
[root@localhost mysql]# ll
total 280
-rw-r--r--.  1 root root 260678 Oct 11  2023 LICENSE
-rw-r--r--.  1 root root    566 Oct 11  2023 README
-rw-r--r--.  1 root root    566 Oct 11  2023 README-test
drwxr-xr-x.  2 root root   4096 Dec 15 20:12 bin
drwxr-xr-x.  2 root root     73 Dec 15 20:12 docs
drwxr-xr-x.  3 root root   4096 Dec 15 20:12 include
drwxr-xr-x.  4 root root    192 Dec 15 20:12 lib
drwxr-xr-x.  4 root root     30 Dec 15 20:12 man
drwxr-xr-x. 10 root root   4096 Dec 15 20:12 mysql-test
drwxr-xr-x. 28 root root   4096 Dec 15 20:12 share
drwxr-xr-x.  2 root root     90 Dec 15 20:12 support-files

4.安装后配置

1.在/usr/local/mysql创建一个mysql配置文件,并写入字符集相关配置进去。

vi /usr/local/mysql/my.cnf

[mysqld]
# 设置字符集为 utf8mb4
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 可选: 设置客户端和连接的字符集
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

2.在/usr/local/mysql下执行命令初始化MySQL数据库

./bin/mysqld --defaults-file=/usr/local/mysql/my.cnf  --initialize --user=mysql

命令执行完成后,会为我们生成一个临时的root密码TKwei-cPH7>?,初始化完成后,目录内会多出一个data文件夹

[root@localhost mysql]# ./bin/mysqld --defaults-file=/usr/local/mysql/my.cnf  --initialize --user=mysql
2024-12-15T13:56:33.192253Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-12-15T13:56:34.692706Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-12-15T13:56:34.976850Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-12-15T13:56:35.074466Z 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: 658fc67b-baec-11ef-9db1-000c29c17c8f.
2024-12-15T13:56:35.079233Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-12-15T13:56:35.873224Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-12-15T13:56:35.873307Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-12-15T13:56:35.882642Z 0 [Warning] CA certificate ca.pem is self signed.
2024-12-15T13:56:36.037915Z 1 [Note] A temporary password is generated for root@localhost: TKwei-cPH7>?

[root@localhost mysql]# cd /usr/local/mysql/
[root@localhost mysql]# ll
total 284
-rw-r--r--.  1 root  root  260678 Oct 11  2023 LICENSE
-rw-r--r--.  1 root  root     566 Oct 11  2023 README
-rw-r--r--.  1 root  root     566 Oct 11  2023 README-test
drwxr-xr-x.  2 root  root    4096 Dec 15 20:12 bin
drwxr-x---.  5 mysql mysql   4096 Dec 15 21:56 data
drwxr-xr-x.  2 root  root      73 Dec 15 20:12 docs
drwxr-xr-x.  3 root  root    4096 Dec 15 20:12 include
drwxr-xr-x.  4 root  root     192 Dec 15 20:12 lib
drwxr-xr-x.  4 root  root      30 Dec 15 20:12 man
-rw-r--r--.  1 root  root       0 Dec 15 21:56 my.cnf
drwxr-xr-x. 10 root  root    4096 Dec 15 20:12 mysql-test
drwxr-xr-x. 28 root  root    4096 Dec 15 20:12 share
drwxr-xr-x.  2 root  root      90 Dec 15 20:12 support-files

3.在/usr/local/mysql目录执行以下命令,将文件所有者设置为之前新建的mysql用户

chown -R mysql:mysql ./

[root@localhost mysql]# ll
total 284
-rw-r--r--.  1 mysql mysql 260678 Oct 11  2023 LICENSE
-rw-r--r--.  1 mysql mysql    566 Oct 11  2023 README
-rw-r--r--.  1 mysql mysql    566 Oct 11  2023 README-test
drwxr-xr-x.  2 mysql mysql   4096 Dec 15 20:12 bin
drwxr-x---.  5 mysql mysql   4096 Dec 15 21:56 data
drwxr-xr-x.  2 mysql mysql     73 Dec 15 20:12 docs
drwxr-xr-x.  3 mysql mysql   4096 Dec 15 20:12 include
drwxr-xr-x.  4 mysql mysql    192 Dec 15 20:12 lib
drwxr-xr-x.  4 mysql mysql     30 Dec 15 20:12 man
-rw-r--r--.  1 mysql mysql      0 Dec 15 21:56 my.cnf
drwxr-xr-x. 10 mysql mysql   4096 Dec 15 20:12 mysql-test
drwxr-xr-x. 28 mysql mysql   4096 Dec 15 20:12 share
drwxr-xr-x.  2 mysql mysql     90 Dec 15 20:12 support-files

启动和测试MySQL Server

/usr/local/mysql下执行启动脚本文件启动数据库

./support-files/mysql.server start

关闭

./support-files/mysql.server stop

重启

./support-files/mysql.server restart

登录数据库测试,切换到目录/usr/local/mysql,在执行./bin/mysql -uroot -p命令登录数据库操作时,系统提示我们需要修改默认的root密码

[root@localhost mysql]# ./bin/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

Copyright (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;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改默认密码

mysql> SET PASSWORD = PASSWORD('lzj');

修改后要刷新权限

mysql> FLUSH PRIVILEGES;

刷新权限后退出使用新密码再次登录,此时已经可以正常操作数据库了。

[root@localhost mysql]# ./bin/mysql -uroot -plzj
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 7
Server version: 5.7.44 Source distribution

Copyright (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> select version();
+-----------+
| version() |
+-----------+
| 5.7.44    |
+-----------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8mb4                          |
| character_set_connection | utf8mb4                          |
| character_set_database   | utf8mb4                          |
| character_set_filesystem | binary                           |
| character_set_results    | utf8mb4                          |
| character_set_server     | utf8mb4                          |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)

至此,就完成了在RockyLinux9上面安装和运行MySQL5.7

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?

将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作,从而能快速的做出更好的决策。 目 录: ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…

OpenCVE:一款自动收集NVD、MITRE等多源知名漏洞库的开源工具,累计收录CVE 27万+

漏洞库在企业中扮演着至关重要的角色,不仅提升了企业的安全防护能力,还支持了安全决策、合规性要求的满足以及智能化管理的发展。前期博文《业界十大知名权威安全漏洞库介绍》介绍了主流漏洞库,今天给大家介绍一款集成了多款漏洞库的开源漏洞…

《Redis设计与实现》读书笔记-客户端

目录 1.Client简介 2.客户端属性 1)(本文重点)比较通用的属性 2)(后续分享)另外一类是和特定功能相关的属性 2.1套接字文件描述符 2.2名字 2.3标志(flag) 2.4输入缓冲区 2.…

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置

目录 一. 前置条件二. Win10安装配置Oracle数据库2.1 数据库获取2.2 数据库安装2.3 数据库配置确认2.4 数据库访问 三. Win10配置Oracle数据库可对外访问3.1 打开文件和打印机共享3.2 开放1521端口 四. 端口与地址确认4.1 查看监听器的状态4.2 Win10查看1521端口是否被监听4.3 …

10篇--图像噪点消除

概念 何为噪点? 噪点:指图像收到的一些干扰因素,通常是由图像采集设备、传输信道等因素造成的,表现为图像中随机的亮度,也可以理解为有那么一些点的像素值与周围的像素值格格不入。 常见的噪声类型 高斯噪声&#…

【开源免费】基于Vue和SpringBoot的渔具租赁系统(附论文)

本文项目编号 T 005 ,文末自助获取源码 \color{red}{T005,文末自助获取源码} T005,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 渔…

Linux网络基础-----传输层UDP协议

目录 端口号: 查询各类服务的端口号 加深理解端口号: UDP协议 UDP协议特点: 关于缓冲区: 内核层面理解UDP报文 端口号: 知名端口号:0 ~ 1023:被HTTP、SSH等应用层协议广泛使用的端口号&…

XXE靶场

XXE-lab 靶场 靶场网址&#xff1a;http://172.16.0.87/ 第一步我们看到网站有登录框我们试着用 bp 去抓一下包 将抓到的包发到重放器中 然后我们构建palody <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "php://filter/readconvert.base64-encode/resourceC:/flag/fla…

ubuntu+ros新手笔记(三):21讲没讲到的MoveIt2

1 安装MoveIt2 安装参照在ROS2中&#xff0c;通过MoveIt2控制Gazebo中的自定义机械手 安装 MoveIt2可以选择自己编译源码安装&#xff0c;或者直接从二进制安装。 个人建议直接二进制安装&#xff0c;可以省很多事。 sudo apt install ros-humble-moveitmoveit-setup-assistan…

运维 mysql、redis 、RocketMQ性能排查

MySQL查看数据库连接数 1. SHOW STATUS命令-查询当前的连接数 MySQL 提供了一个 SHOW STATUS 命令&#xff0c;可以用来查看服务器的状态信息&#xff0c;包括当前的连接数。 SHOW STATUS LIKE Threads_connected;这个命令会返回当前连接到服务器的线程数&#xff0c;即当前…

jmeter连接mysql

查询mysql数据库版本 SELECT VERSION(); 下载jmeter mysql 驱动jar包&#xff0c;版本低于mysql版本&#xff0c;放在jmeter的lib 路径下 MySQL :: Download MySQL Connector/J (Archived Versions) 添加JDBC Connection Configuration 填写 variable name 及数据库信息 注意…

Docker的容器

目录 1. 什么是容器&#xff1f;2. 容器的生命周期2.1 容器处理OOM事件2.2 容器异常退出2.3 容器暂停 3. 容器命令详解3.1 容器命令清单3.2 docker create命令3.3 docker run命令3.4 docker ps命令3.5 docker logs命令3.6 docker attach命令3.7 docker exec命令3.8 docker stat…

JAVA题目笔记(二十六)反射

一、保存信息 Student类&#xff1a; package testpackage;import java.io.IOException;public class Student {private String name;private String area;public String testfield;private int age;public Student() {}public Student(String name, String area, int age) {t…

python 配置 oracle instant client

1.问题描述 想用python连接oracle数据库&#xff0c;百度得知需要cx_Oracle这个第三方库 import cx_Oracle# 设置Oracle数据源名称 dsn cx_Oracle.makedsn(host, port, service_nameservice_name)# 创建数据库连接 connection cx_Oracle.connect(userusername, passwordpas…

皮肤伤口分割数据集labelme格式248张5类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;284 标注数量(json文件个数)&#xff1a;284 标注类别数&#xff1a;5 标注类别名称:["bruises","burns","cu…

Ollama配置与webUI本地部署-学习记录

Ollama 前言一、Ollama的下载与安装设置(windows)1.下载2.安装与配置1.查看环境变量&#xff1a;2.设置环境变量&#xff1a;3.设置变量 二、使用步骤1.查找模型2.使用Ollama1.下载模型2.使用 三、WebUI部署WebUI 总结 前言 Ollama是一款可以开始使用本地的大型语言模型。启动…

vscode不同项目使用不同插件

转载请注明出处&#xff1a;小帆的帆的博客 在使用vscode开发不同项目时可能会用到不同的插件。手动管理不够优雅&#xff0c;本文介绍使用Profiles的方式的来管理不同项目的插件。 手动管理不同项目的插件 本来vscode安装了有三个插件 这时需要新建一个项目&#xff0c;新…

数据结构 ——前缀树查词典的实现

数据结构 ——前缀树查词典的实现 一、前缀树的概念 前缀树是一种多叉树结构&#xff0c;主要用于存储字符串。每个节点代表一个字符&#xff0c;路径从根节点到叶节点表示一个完整的字符串。前缀树的关键特征是 共享前缀&#xff0c;也就是说&#xff0c;如果两个字符串有相…

H5 中 van-popup 的使用以及题目的切换

H5 中 van-popup 的使用以及题目的切换 在移动端开发中&#xff0c;弹窗组件是一个常见的需求。vant 是一个轻量、可靠的移动端 Vue 组件库&#xff0c;其中的 van-popup 组件可以方便地实现弹窗效果。本文将介绍如何使用 van-popup 实现题目详情的弹窗展示&#xff0c;并实现…

leetcode 36.有效的数独

1.题目要求: 2.题目步骤: 写好判断函数 3.题目代码: class Solution { public:bool isvalid(vector<vector<char>>& board,char num,int row,int col){//先找左下标int leftrow row - 1;while(leftrow > 0){if(board[leftrow][col] num){return fals…