惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
A
About on SuperTechFans
J
Java Code Geeks
量子位
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 半岛拖鞋

Flask JWT简单但完整的项目部署 定位informix oninit进程CPU占用过高的一般步骤 使用Eclipse Memory Analyzer分析java程序占用内存的情况 解决C#连接informix数据库中文乱码 Python手动新建环境 @ApiImplicitParam DataType参数的数据类型 C# Odbc Informix读取中文方法 eclise国内镜像下载地址 Spring Initializr - LSP - Failed to fetch Generation from Spring IO: port out of range: -1 oracle express 18安装后初次登录 linux 查找并批量kill进程 从WebService的SOAP返回数据中获取子级的XML内容 C# 进行用(反)序列化方法实现xml与对象进行互相转换 Alpine Linux添加中文支持显示 VBS字符串在不同编码之间的转换 C#根据wsdl文件生成客户端调用代码 PHP 7.4 checking for libzip 和 failed to open error_log 问题 PHP连接Informix异常 CentOS安装扩展软件支持库
Linux下手动安装部署MySQL8.4
半岛拖鞋 · 2026-04-15 · via 博客园 - 半岛拖鞋

        MySQL的版本已经更新到8.4.8LTS, 这是一个长期支持版本, 在工作框架需求不是特别死板的情况下,我们可以考虑使用最新的MySQL版本,尝试使用其新功能特性.下面楼主我介绍一种比较方便的安装MySQL的方法, 比起手动编译更简单, 比起在线安装更便捷.

MySQL可以到(MySQL :: Download MySQL Community Server)这里下载,选择最新稳定版mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xz, 也可以选择mysql-8.4.8-linux-glibc2.28-x86_64, 但这个版本包含了其他用不到的嵌入式版本,所有这里以简便为主.如图:

 图片1

系统选择最新的Rocky Linux Rocky-10.1-x86_64-minimal, 安装镜像可以到各大高校的同步镜像去下载.安装rocky的过程这里不是重点,不进行赘述.事实上的情况是, 只要linux系统的glibc的版本大于或者等于MySQL使用的glibc编译版本就可以.查看glibc版本号的方法如下命令:

Redhat Enterprise, 系统glibc的版本分布如下

Redhat Enterprise(CentOS/Rocky/Alma)版本

Gblic版本

支持MySQLglibc编译依赖包的版本

6.X

ldd (GNU libc) 2.12

最高mysql-5.7.44-linux-glibc2.12

7.X

ldd (GNU libc) 2.17

向下兼容, 最高glibc2.17编译的版本

8.X

ldd (GNU libc) 2.28

向下兼容, 最高glibc2.28编译的版本

9.X

ldd (GNU libc) 2.34

向下兼容, 最高glibc2.34编译的版本

10.X

ldd (GNU libc) 2.39

向下兼容, 最高glibc2.39编译的版本

接下来开始安装mysql

上传压缩包mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xzrocky/opt目录下

解压,做链接:

# cd /opt/

# xz -d mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xz

# tar xvf mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar

# ln -s /opt/mysql-8.4.8-linux-glibc2.28-x86_64-minimal /opt/mysql

创建mysql用户

# useradd -r -s /sbin/nologin mysql

创建工作目录:

# mkdir -p /opt/mysql/run ; mkdir -p /opt/mysql/data

# mkdir -p /opt/mysql/logs; mkdir -p /opt/mysql/etc

授权工作目录

# chown -R mysql.mysql /opt/mysql/run ; chown -R mysql.mysql /opt/mysql/logs

# chown -R mysql.mysql /opt/mysql/data; chown -R mysql.mysql /opt/mysql/etc

生成配置文件

# cat > /opt/mysql/etc/my.cnf << EOF

[client]

socket = /opt/mysql/run/mysql.sock

[mysql]

[mysqld]

port = 3306

socket = /opt/mysql/run/mysql.sock

pid-file=/opt/mysql/run/mysqld.pid

log-error=/opt/mysql/logs/mysqld.log

basedir=/opt/mysql

datadir=/opt/mysql/data

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

skip-external-locking

lower_case_table_names=1

#skip-grant-tables

EOF

# ln -s /opt/mysql/etc/my.cnf /etc/my.cnf

--8.x及以上的rhel linux版本,都要做库连接

#  ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

#  ln -s /usr/lib64/libncurses.so.6 /usr/lib/libncurses.so.5

#  ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

#  ln -s /usr/lib64/libtinfo.so.6 /usr/lib/libtinfo.so.5

把命令行加入PATH

# echo "export PATH=$PATH:/opt/mysql/bin" > /etc/profile.d/mysql.sh && chmod a+x /etc/profile.d/mysql.sh && source /etc/profile.d/mysql.sh

# mysql --version

初始化数据库

# mysqld --initialize-insecure --lower-case-table-names=1 --defaults-file=/opt/mysql/etc/my.cnf --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data

# mysql_ssl_rsa_setup --datadir=/opt/mysql/data

#构建MySQL服务

# cat > /etc/systemd/system/mysqld.service << EOF

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/opt/mysql/bin/mysqld --defaults-file=/opt/mysql/etc/my.cnf

LimitNOFILE = 5000

EOF

--启动服务

# systemctl daemon-reload

# systemctl enable --now mysqld

# systemctl restart mysqld

# systemctl status mysqld

-- 修改密码,允许远程登录

# password='fj#ka98uBW2jimfw38fh'

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '${password}';ALTER USER 'root'@'localhost' IDENTIFIED BY '${password}' PASSWORD EXPIRE NEVER;UPDATE mysql.user SET host='%' WHERE User='root' AND Host='localhost';"|mysql -u"root"

--检查结果

# echo "select host,user from mysql.user"|mysql -uroot -p"${password}"

--防火墙开放端口

# firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload && firewall-cmd --list-all

到这里mysql的基本安装过程已经完成. 其他的各类mysql应用场景(olap/oltp)优化可以在此基础上对my.cnf进行修改.