如何离线安装MySQL及其依赖包?

胖丽吖_2441

胖丽吖_2441

2026-09-03

228人浏览

原创

离线安装mysql核心卡点是包与系统严格匹配、依赖手动补全、数据目录显式初始化;需用uname -m和ldd --version核对架构与glibc版本,下载对应linux-generic包,创建mysql用户并赋权,执行--initialize生成临时密码,启动时必须指定--defaults-file指向完整配置的my.cnf。

如何离线安装mysql及其依赖包?

离线安装 MySQL 不是解压完就能跑,核心卡点在三件事:包与系统严格匹配、依赖必须手动补全、数据目录必须显式初始化。

确认系统架构和 glibc 版本再下载包

直接下错包是离线失败的第一原因。x86_64 包扔到 aarch64 机器上会报 cannot execute binary file;glibc 2.28 编译的包在 CentOS 7(glibc 2.17)上运行会提示 GLIBC_2.28 not found。

  • 查 CPU 架构:uname -m(结果为 x86_64 或 aarch64)
  • 查 glibc 版本:ldd --version(看第一行输出,如 ldd (GNU libc) 2.17)
  • 去 MySQL 官网下载页选 Linux - Generic 包,文件名必须含对应标识,例如:mysql-8.0.33-linux-glibc2.17-x86_64.tar.xz
  • 别用 mysql-community-server RPM 包——它依赖网络源装 systemd-sysv、libaio 等,离线环境下 rpm -ivh 会卡死或静默失败

Ubuntu 系统必须提前装好 libaio1 和 libmecab2

Ubuntu 的 .deb-bundle.tar 包不包含系统级依赖,只打包了 MySQL 自身组件。缺 libaio1 启动时会卡在 Can't initialize InnoDB;缺 libmecab2 则全文索引功能不可用,且部分安装流程会中断。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 在有网机器上用同版本 Ubuntu(如 20.04)执行:apt download libaio1 libmecab2
  • 得到类似 libaio1_0.3.112-9_amd64.deb 和 libmecab2_0.996-1.2ubuntu1_amd64.deb 文件
  • 传到目标机后按顺序安装:sudo dpkg -i libaio1_*.deb libmecab2_*.deb
  • 如果提示依赖未满足,先运行:sudo apt-get install -f(仅限首次修复,之后必须离线解决)

初始化数据目录前必须创建 mysql 用户并设权

二进制包解压后没有预建数据目录,直接 mysqld --daemonize 会报 Failed to open log file 或 Can't find error-message file。这不是配置问题,是权限和路径根本没生效。

  • 创建系统用户:sudo useradd -r -s /bin/false mysql
  • 新建数据目录(不要用默认 /var/lib/mysql,避免残留冲突):sudo mkdir -p /data/mysql
  • 赋权:sudo chown -R mysql:mysql /data/mysql 和 sudo chown -R mysql:mysql /usr/local/mysql
  • 初始化(关键!必须带完整路径):/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
  • 临时密码在终端末尾输出,形如:A temporary password is generated for root@localhost: xY7#kP2!vNq,立刻记下

启动时必须显式指定 my.cnf 路径

MySQL 二进制包不读取 /etc/my.cnf 以外的默认路径,也不自动识别解压位置。不指定配置文件,mysqld 会用内置默认值,导致 bind-address、character_set_server 等全部失效,甚至无法远程连接。

  • 写最小可用配置到 /etc/my.cnf:
[mysqld]
port=3306
bind-address=0.0.0.0
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
pid-file=/data/mysql/mysql.pid
character_set_server=utf8mb4
  • 启动命令必须加 --defaults-file:/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize
  • 首次登录后立刻改密:mysql -uroot -p → ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPass123!';
  • 禁用密码过期:ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

最容易被忽略的是初始化后的错误日志位置——它不在 /var/log,而是在 datadir 下的 hostname.err 文件里,比如 /data/mysql/server01.err。出问题不看这个日志,等于蒙眼排障。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2273

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

1399

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

815

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

3152

5

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.25

5348

4

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.08

1179

3

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

5611

4

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

2023.08.14

4902

7

mysql事务隔离级别
mysql事务隔离级别

mysql规范中定义了四种事务隔离级别,不同的隔离级别对事务的处理有所不同。本专题为大家提供mysql事务隔离级别相关的文章内容,大家可以免费体验。

2023.08.16

6534

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 188人学习