网易首页 > 网易号 > 正文 申请入驻

Rocky Linux 9 源码包安装Mysql5.7

0
分享至


Rocky-Linux-9-源码包安装Mysql5.7

大家好,我是星哥,今天继续来盘盘Rocky Linux 9系统。

对于那些寻求在 Rocky Linux 9 上从源码编译安装 MySQL 5.7 的开发者和系统管理员来说,虽然 MySQL 5.7 已经不再是最新的版本,但在某些特定场景下,例如兼容性需求或深度定制,源码安装仍然是不可或缺的选项。

为什么选择源码安装?

通过源码包安装 MySQL 5.7 具有以下优势:

最大程度的定制化: 你可以根据自己的需求,在编译时启用或禁用特定功能,优化性能。

解决依赖问题: 对于一些特定环境,预编译包可能存在依赖冲突,源码安装可以更灵活地处理这些问题。

学习和调试: 编译过程有助于深入理解 MySQL 的构建和运行机制,方便进行故障排除和性能调优。

# 使用: # gitee: # wget https://gitee.com/funet8/Rocky-Linux-Shell/raw/main/shell/Rocky_Linux_9_Install_MySQL5_7.sh # sh Rocky_Linux_9_Install_MySQL5_7.sh # github: # wget https://raw.githubusercontent.com/funet8/Rocky-Linux-Shell/refs/heads/main/shell/Rocky_Linux_9_Install_MySQL5_7.sh # sh Rocky_Linux_9_Install_MySQL5_7.sh
功能介绍

功能:Rocky Linux 9系统中源码包安装 mysql5.7

mysql安装的目录:/data/app/mysql5.7/install

mysql数据库目录:/data/app/mysql5.7/data

mysql数据库配置目录:/data/app/mysql5.7/etc

mysql数据库Binlog配置目录: /data/app/mysql5.7/binlog

mysql端口为: 61570

mysql root密码为: CQ1234567

0.定义变量

# --- 变量定义 --- MYSQL_USER="mysql" MYSQL_GROUP="mysql" # 打开MySQL-Community-Server官方下载页面: https://downloads.mysql.com/archives/community/ # DOWNLOAD_URL="https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz" DOWNLOAD_URL="http://js.funet8.com/rocky-linux/mysql/mysql-boost-5.7.44.tar.gz" MYSQL_DIR="/data/software/" Mysql_path='/data/app/mysql5.7' #mysql安装的目录 Mysql_app='/data/app/mysql5.7/install' #mysql数据库目录 Mysql_data='/data/app/mysql5.7/data' #mysql数据库配置目录 Mysql_etc='/data/app/mysql5.7/etc' #mysql数据库binlog目录 Mysql_binlog='/data/app/mysql5.7/binlog' MYSQL_PORT="61570" # 自定义端口 # server_id来唯一的标识某个数据库实例,并在链式或双主复制结构中用它来避免sql语句的无限循环 Server_Id='1' MYSQL_PassWord="CQ1234567"
1.创建用户

groupadd mysql useradd -M -g mysql -s /sbin/nologin mysql
2.安装依赖包

dnf install -y make gcc-c++ cmake bison  perl autoconf ncurses-devel openssl-devel libtirpc     mkdir /data/software/     cd /data/software/     wget http://js.funet8.com/rocky-linux/mysql/libtirpc-devel-1.3.3-9.el9.x86_64.rpm     wget http://js.funet8.com/rocky-linux/mysql/rpcgen-1.4-9.el9.x86_64.rpm     # 安装依赖包     rpm -ivh libtirpc-devel-1.3.3-9.el9.x86_64.rpm     rpm -ivh rpcgen-1.4-9.el9.x86_64.rpm
3.安装mysql

新建mysql目录

mkdir -p /data/app/mysql5.7 /data/app/mysql5.7/install /data/app/mysql5.7/data /data/app/mysql5.7/etc /data/app/mysql5.7/binlog

下载mysql,并且安装

cd /data/software/ wget http://js.funet8.com/rocky-linux/mysql/mysql-boost-8.0.39.tar.gz tar -zxvf mysql-boost-5.7.44.tar.gz cd mysql-5.7.44/      cmake -DCMAKE_INSTALL_PREFIX=/data/app/mysql5.7/install -DMYSQL_DATADIR=/data/app/mysql5.7/data -DMYSQL_UNIX_ADDR=/data/app/mysql5.7/etc/mysql.sock -DSYSCONFDIR=/data/app/mysql5.7/install -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=61570 -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/ make && make install
4.创建配置文件

vi /data/app/mysql5.7/etc/my.cnf

填写如下配置

[client] default-character-set = utf8mb4 [mysqld] ### 基本属性配置 port = 61570 datadir=/data/app/mysql5.7/data socket=/data/app/mysql5.7/etc/mysql.sock # 禁用主机名解析 skip-name-resolve # 默认的数据库引擎 default-storage-engine = InnoDB ### 字符集配置 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' ### GTID # server_id来唯一的标识某个数据库实例,并在链式或双主复制结构中用它来避免sql语句的无限循环 server_id = 1 # 为保证 GTID 复制的稳定, 行级日志 binlog_format = row # 开启 gtid 功能 gtid_mode = on # 保障 GTID 事务安全 # 当启用enforce_gtid_consistency功能的时候, # MySQL只允许能够保障事务安全, 并且能够被日志记录的SQL语句被执行, # 像create table ... select 和 create temporarytable语句, # 以及同时更新事务表和非事务表的SQL语句或事务都不允许执行 enforce-gtid-consistency = true # 以下两条配置为主从切换, 数据库高可用的必须配置 # 开启 binlog 日志功能 log_bin = /data/app/mysql5.7/binlog/mysql-bin # 开启从库更新 binlog 日志 log-slave-updates = on ### 慢查询日志 # 打开慢查询日志功能 slow_query_log = 1 # 超过2秒的查询记录下来 long_query_time = 2 # 记录下没有使用索引的查询 log_queries_not_using_indexes = 1 slow_query_log_file = /data/app/mysql5.7/etc/slow-61570.log ### 自动修复 # 记录 relay.info 到数据表中 relay_log_info_repository = TABLE # 记录 master.info 到数据表中 master_info_repository = TABLE # 启用 relaylog 的自动修复功能 relay_log_recovery = on # 在 SQL 线程执行完一个 relaylog 后自动删除 relay_log_purge = 1 ### 数据安全性配置 # 关闭 master 创建 function 的功能 log_bin_trust_function_creators = off # 每执行一个事务都强制写入磁盘 sync_binlog = 1 # timestamp 列如果没有显式定义为 not null, 则支持null属性 # 设置 timestamp 的列值为 null, 不会被设置为 current timestamp explicit_defaults_for_timestamp=true ### 优化配置 # 优化中文全文模糊索引 ft_min_word_len = 1 # 默认库名表名保存为小写, 不区分大小写 lower_case_table_names = 1 # 单条记录写入最大的大小限制 # 过小可能会导致写入(导入)数据失败 max_allowed_packet = 256M # 半同步复制开启 #rpl_semi_sync_master_enabled = 1 #rpl_semi_sync_slave_enabled = 1 # 半同步复制超时时间设置 #rpl_semi_sync_master_timeout = 1000 # 复制模式(保持系统默认) #rpl_semi_sync_master_wait_point = AFTER_SYNC # 后端只要有一台收到日志并写入 relaylog 就算成功 #rpl_semi_sync_master_wait_slave_count = 1 # 多线程复制 #slave_parallel_type = logical_clock #slave_parallel_workers = 4 ### 连接数限制 max_connections = 3000 # 验证密码超过20次拒绝连接 max_connect_errors = 20 # back_log值指出在mysql暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中 # 也就是说,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中 # 以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log # 将不被授予连接资源 back_log = 500 open_files_limit = 65535 # 服务器关闭交互式连接前等待活动的秒数 interactive_timeout = 3600 # 服务器关闭非交互连接之前等待活动的秒数 wait_timeout = 3600 ### 内存分配 # 指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间 # 该表就被打开并放入其中,这样可以更快地访问表内容 table_open_cache = 1024 # 为每个session 分配的内存, 在事务过程中用来存储二进制日志的缓存 binlog_cache_size = 2M # 在内存的临时表最大大小 tmp_table_size = 128M # 创建内存表的最大大小(保持系统默认, 不允许创建过大的内存表) # 如果有需求当做缓存来用, 可以适当调大此值 max_heap_table_size = 16M # 顺序读, 读入缓冲区大小设置 # 全表扫描次数多的话, 可以调大此值 read_buffer_size = 1M # 随机读, 读入缓冲区大小设置 read_rnd_buffer_size = 8M # 高并发的情况下, 需要减小此值到64K-128K sort_buffer_size = 1M # 每个查询最大的缓存大小是1M, 最大缓存64M 数据 query_cache_size = 64M query_cache_limit = 1M # 提到 join 的效率 join_buffer_size = 16M # 线程连接重复利用 thread_cache_size = 64 ### InnoDB 优化 ## 内存利用方面的设置 # 数据缓冲区 innodb_buffer_pool_size=2G ## 日志方面设置 # 事务日志大小 innodb_log_file_size = 256M # 日志缓冲区大小 innodb_log_buffer_size = 4M # 事务在内存中的缓冲 #innodb_log_buffer_size = 3M # 主库保持系统默认, 事务立即写入磁盘, 不会丢失任何一个事务 innodb_flush_log_at_trx_commit = 1 # mysql 的数据文件设置, 初始100, 以10M 自动扩展 innodb_data_file_path = ibdata1:10M:autoextend # 为提高性能, MySQL可以以循环方式将日志文件写到多个文件 innodb_log_files_in_group = 3 ##其他设置 # 如果库里的表特别多的情况,请增加此值 innodb_open_files = 800 # 为每个 InnoDB 表分配单独的表空间 innodb_file_per_table = 1 # InnoDB 使用后台线程处理数据页上写 I/O(输入)请求的数量 innodb_write_io_threads = 8 # InnoDB 使用后台线程处理数据页上读 I/O(输出)请求的数量 innodb_read_io_threads = 8 # 启用单独的线程来回收无用的数据 innodb_purge_threads = 1 # 脏数据刷入磁盘(先保持系统默认, swap 过多使用时, 调小此值, 调小后, 与磁盘交互增多, 性能降低) # innodb_max_dirty_pages_pct = 90 # 事务等待获取资源等待的最长时间 innodb_lock_wait_timeout = 120 # 开启 InnoDB 严格检查模式, 不警告, 直接报错 innodb_strict_mode=1 # 允许列索引最大达到3072 innodb_large_prefix = on [mysqldump] # 开启快速导出 quick default-character-set = utf8mb4 max_allowed_packet = 256M [mysql] # 开启 tab 补全 auto-rehash default-character-set = utf8mb4
5.mysql初始化

chown mysql.mysql -R /data/app/mysql5.7 # 初始化数据库 /data/app/mysql5.7/install/bin/mysqld --defaults-file=/data/app/mysql5.7/etc/my.cnf --initialize --user=mysql > /data/app/mysql5.7/etc/mysql_install.log  #mysql初始密码 mysql_passwd_init=`cat ${Mysql_etc}/mysql_install.log | grep  password |awk '{print $NF}'` # 启动mysql /data/app/mysql5.7/install/support-files/mysql.server start 修改密码: /data/app/mysql5.7/install/bin/mysqladmin -u root -hlocalhost -P61570 -p password CQ1234567 # 关闭mysql /data/app/mysql5.7/install/support-files/mysql.server stop 再次执行: chown mysql.mysql -R /data/app/mysql5.7
6.开机启动

使用 rc.local 作为启动文件。

echo "添加Mysql5.7开机自启动脚本" >> /etc/rc.local echo "nohup ${Mysql_app}/bin/mysqld_safe --defaults-file=${Mysql_etc}/my.cnf --user=${MYSQL_USER} > /dev/null 2>&1 &">> /etc/rc.local #启用rc-local systemctl enable rc-local systemctl start rc-local chmod +x /etc/rc.d/rc.local
7.添加环境变量

echo '#mysql5.7' >> /etc/profile echo "export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data/app/mysql5.7/install/bin" >> /etc/profile source /etc/profile mysql -V
8.开启防火墙

firewall-cmd --zone=public --add-port=61570/tcp --permanent firewall-cmd --reload # 查看所有端口 firewall-cmd --zone=public --list-ports
9.新建一个管理员账号

创建一个名字star账号,密码为 PASs5566a ,管理员权限的账号

#  /data/app/mysql5.7/install/bin/mysql -u root -h localhost -P61570 -p'CQ1234567' # CREATE USER 'star'@'%' IDENTIFIED BY 'PASs5566a'; # GRANT  all privileges ON * . * TO 'star'@'%' IDENTIFIED BY 'PASs5566a';  # GRANT ALL PRIVILEGES ON * . * TO 'star'@'%' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; # flush privileges;
总结

以上就是通过源码包安装 MySQL 5.7 虽然的步骤,让你对 MySQL 的配置和运行有更深入的理解,并能满足特定的定制化需求。

在生产环境中,请务必关注安全性,定期备份数据,并根据实际负载对 MySQL 进行性能优化。

如果你在安装过程中遇到任何问题,欢迎在评论区留言交流!

写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;也别忘了关注星哥玩云!这里有满满的干货分享,还有轻松有趣的技术交流~点个赞、分享给身边的小伙伴,一起成长,一起玩转技术世界吧!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
报纸已无人问津,报社却还在大量印刷,究竟是哪些人还在看?

报纸已无人问津,报社却还在大量印刷,究竟是哪些人还在看?

铭记历史呀
2026-07-18 00:50:43
浙大调查422名胰腺癌逝者,发现:得胰腺癌的人,大多有这6大共性

浙大调查422名胰腺癌逝者,发现:得胰腺癌的人,大多有这6大共性

健康之光
2026-07-17 04:20:06
凯特王妃也爱!这条40美元夏季连衣裙显瘦又优雅

凯特王妃也爱!这条40美元夏季连衣裙显瘦又优雅

娱圈观察员
2026-07-17 01:12:58
陈皮搭一物,堪称“祛湿高手”,痰没了湿气散了,清爽轻快!

陈皮搭一物,堪称“祛湿高手”,痰没了湿气散了,清爽轻快!

江江食研社
2026-07-08 15:30:10
还是做好准备吧,一美元只能兑换5.5元人民币时代,或许终会到来

还是做好准备吧,一美元只能兑换5.5元人民币时代,或许终会到来

阅识
2026-01-31 15:32:50
男同事搭我车5年,辞职时递名片说“姐来试试”,一看单位名我愣住了

男同事搭我车5年,辞职时递名片说“姐来试试”,一看单位名我愣住了

晓艾故事汇
2026-07-17 08:39:28
国台办宣布,统一已势在必行,洪秀柱飞向杭州,郑丽文骂民进党

国台办宣布,统一已势在必行,洪秀柱飞向杭州,郑丽文骂民进党

光辉与阴暗
2026-07-19 00:55:45
罗德里世界杯大放异彩,皇马仍无意引进

罗德里世界杯大放异彩,皇马仍无意引进

坠入温柔晚风
2026-07-19 00:09:56
西班牙老国王荒淫无度,拥有5000情妇性瘾严重,曾勾引戴安娜王妃

西班牙老国王荒淫无度,拥有5000情妇性瘾严重,曾勾引戴安娜王妃

霁寒飘雪
2026-07-04 09:30:44
四川2市(州)人大常委会通过人事任免

四川2市(州)人大常委会通过人事任免

金台资讯
2026-07-18 09:37:28
西班牙王室公主们马上飞美国!出发前合体营业,粉嫩造型甜度拉满

西班牙王室公主们马上飞美国!出发前合体营业,粉嫩造型甜度拉满

精彩背后
2026-07-18 11:24:48
维尼修斯今夏离队只剩曼联一个选项,皇马下达最后通牒

维尼修斯今夏离队只剩曼联一个选项,皇马下达最后通牒

童叔不飙车
2026-07-19 00:28:38
英国新首相正式出炉!对华态度彻底反转?

英国新首相正式出炉!对华态度彻底反转?

新浪财经
2026-07-18 21:07:57
闹笑话了不是,《功夫女足》背后最大出资公司,是贾玲的最强金主

闹笑话了不是,《功夫女足》背后最大出资公司,是贾玲的最强金主

小武侃风云
2026-07-17 06:39:24
彭水山体崩塌吹哨人曝光,前夜发现落石,最早上报上山查看发现异常,通知邻居撤离救了数十人

彭水山体崩塌吹哨人曝光,前夜发现落石,最早上报上山查看发现异常,通知邻居撤离救了数十人

Mr王的饭后茶
2026-07-19 00:23:39
14.1亿人里到底多少人在负债过日子?数据被揭开 结果比想象更扎心

14.1亿人里到底多少人在负债过日子?数据被揭开 结果比想象更扎心

牛锅巴小钒
2026-06-29 17:38:24
首发2场锁住张玉宁,张洪福踢出来了,辽宁10年后卫不愁,换掉瓦吉奇上限更高

首发2场锁住张玉宁,张洪福踢出来了,辽宁10年后卫不愁,换掉瓦吉奇上限更高

替补席看球
2026-07-18 12:11:16
丘班取消,奥数利益链崩塌!天赋孩子出路何在?

丘班取消,奥数利益链崩塌!天赋孩子出路何在?

王姐懒人家常菜
2026-07-18 01:26:19
官方通报“四川幼专招聘笔试第一落选,拟录取第一名考生疑为该校编外人员”:已成立联合调查组,对该问题和相关招考工作开展调查核实

官方通报“四川幼专招聘笔试第一落选,拟录取第一名考生疑为该校编外人员”:已成立联合调查组,对该问题和相关招考工作开展调查核实

台州交通广播
2026-07-16 14:21:42
重磅官宣!樊振东落地北京,全新身份正式公布,薪资报酬首次曝光

重磅官宣!樊振东落地北京,全新身份正式公布,薪资报酬首次曝光

小七说篮球
2026-07-18 15:44:56
2026-07-19 01:55:00
星哥玩云 incentive-icons
星哥玩云
星哥跟你说说工作生活的那些事
420文章数 280关注度
往期回顾 全部

科技要闻

WAIC2026看什么?这份"不迷路"攻略请收好

头条要闻

“黄总请你去包厢” “黄总”身份公布

头条要闻

“黄总请你去包厢” “黄总”身份公布

体育要闻

德尚是非典型法国人 14年执教留下丰厚遗产

娱乐要闻

大S给具俊晔留遗产是昏头?实际上她清醒得很

财经要闻

股民当街砍博主!韩国股市 终极大屠杀

汽车要闻

把中国超跑卖到英国,比亚迪正在被世界看见

态度原创

亲子
旅游
本地
房产
公开课

亲子要闻

大家可千万不要乱讲啊

旅游要闻

苏州河的另一种读法:从千年水脉到生活秀场

本地新闻

十年了,为什么鬼怪CP还能让人美美嗑上?

房产要闻

突然出手!千亩城更+一线江景,世嘉亮出超级四代宅!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版