Linux 系统离线部署 MySQL 详细步骤
在 Linux 环境下离线部署 MySQL 8.0 的全过程。涵盖下载安装包、解压重命名、创建用户组、配置 my.cnf、初始化数据目录、注册系统服务、启动登录及修改初始密码等关键步骤。同时提供了初始化报错(glibc 依赖)和服务启动报错(日志目录缺失)的排查与解决方案,适用于无网络环境的服务器部署场景。
在 Linux 环境下离线部署 MySQL 8.0 的全过程。涵盖下载安装包、解压重命名、创建用户组、配置 my.cnf、初始化数据目录、注册系统服务、启动登录及修改初始密码等关键步骤。同时提供了初始化报错(glibc 依赖)和服务启动报错(日志目录缺失)的排查与解决方案,适用于无网络环境的服务器部署场景。


使用 sftp 工具上传到/usr/local 目录上

tar -xf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz


在/usr/mysql/目录下
mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql


groupadd mysql #创建用户组
useradd -r -g mysql mysql
chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组
mkdir -p /data/mysql #创建数据目录
chown mysql:mysql -R /data/mysql # 将新目录文件的所有属性改为 mysql 用户
vim /etc/my.cnf
添加如下配置信息
[mysqld]
port=3306 # 设置 MySQL 服务监听端口,默认 3306
bind-address=0.0.0.0 # 设置 MySQL 服务器绑定的 IP 地址,可以设置为自己本机 IP
user=mysql # 设置 MySQL 数据库用户
basedir=/usr/local/mysql # 数据库文件路径
datadir=/data/mysql # 数据库数据目录,存储数据库文件的路径
socket=/tmp/mysql.sock # 设置 MySQL 服务器使用的套接字文件路径
pid-file=/data/mysql/mysql.pid # 设置指定存放进程 ID 的文件
character_set_server=utf8mb4 # 设置每个连接的默认字符集
symbolic-links=0
explicit_defaults_for_timestamp=true # mysql-5.6.6 丢弃了这个系统变量,版本高于 5.6.6 的可加上
先切换到 mysql 路径,再执行初始化
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
–basedir 为 mysql 解压目录,–datadir 为 mysql 数据存放目录,就是在/etc/my.cnf 配置的路径

PS:此步骤可能因 glibc 依赖问题会报错,如报错可参考第 15 条的解决方法。
cat /data/mysql/mysql.err

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql


PS:此步骤重启 mysql 服务可能会 log-error 文件目录不存在报错,可参考第 15 条的解决方法。
/usr/local/mysql/bin/mysql -u root -p
输入刚开始初始化后查看到的初始密码,即可完成进入 mysql 数据库

PS:如果想直接使用 mysql -u root -p 直接登录,则需要先把 mysql 的路径映射链接到/usr/bin 目录下
ln -s /usr/local/mysql/bin/mysql /usr/bin

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES; #刷新

退出数据库,再次登录即可输入更改的密码,到此 mysql 已经部署完成,成功部署。
初始化数据库的时候报'./mysqld:/lib64/libstdc++.so.6:version 'CXXABI 1.3.11' not found (required by ./mysqld)'

此报错是缺少对应的 libstdc++ 版本依赖问题,可以先查看对应的版本
strings /usr/lib64/libstdc++ |grep CXXABI

find / -name "libstdc++.so.6*"

可以看到是缺少相应的版本依赖。
1)可以看缺少那些依赖就安装对应的依赖版本


启动 mysql 服务时可能会报'Starting MySQL.2024-09-20T09:32:58.959370Z mysqld safe error:log-error set to/var/log/mariadb/mariadb.log',however file doesn't exist.Create writable for us 'mysql''

此错误时没有对应的目录和文件,进行创建目录和文件即可
mkdir /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online