AlmaLinux release 9.6服务器离线安装MySQL8.0.27详细步骤

1.先下载mysql到本地,在上传到需要安装MySQL的服务器上;

https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

2.上传MySQL压缩包到指定文件夹下,并解压;

例如:在/data01文件夹

先创建mysql文件下,再解压

java 复制代码
#创建文件夹
sudo mkdir mysql
cd mysql
#在目录中执行解压命令
sudo tar -xvf  mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

#修改解压后的目录名称(可选)
sudo mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql-8.0.27

3.创建用户组以及用户和密码:

java 复制代码
#创建mysql用户组
sudo groupadd mysql

#创建mysql用户 并添加到mysql用户组中
sudo useradd -g mysql mysql

4.授权用户

java 复制代码
#授权mysql用户目录权限
sudo chown -R mysql.mysql /data01/mysql/mysql-8.0.27/

5.执行初始化命令

java 复制代码
sudo mkdir data
sudo chown -R mysql.mysql /data01/mysql/mysql-8.0.27/

#进入mysql目录
cd mysql-8.0.27/bin

#执行初始化命令
sudo ./mysqld --user=mysql --basedir=/data01/mysql/mysql-8.0.27 --datadir=/data01/mysql/mysql-8.0.27/data/ --initialize --lower-case-table-names=1

#执行成功后会有root用户初始密码要记录下

6.修改MySQL数据目录

java 复制代码
#修改配置文件
sudo vi /etc/my.cnf

#参考示例
[mysqld]
#设置mysql的安装目录
basedir=/data01/mysql/mysql-8.0.27/
#设置mysql数据库的数据的存放目录
datadir=/data01/mysql/mysql-8.0.27/data
# 设置客户端默认字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置是否区分大小写(初始化后此参数在这里也必须存在)
lower_case_table_names=1

# 默认使用"mysql_native_password"插件认证 
default_authentication_plugin=mysql_native_password
#注释mysqld_safe 下的所有配置 系统会输出到 datadir目录下
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid

7.服务器关闭selinux防火墙

java 复制代码
sudo vim /etc/sysconfig/selinux
#设置selinux为disabled

#再输入setenforce 0,临时关闭selinux防火墙
sudo setenforce 0

8.添加mysqld服务到系统 授权以及添加服务

java 复制代码
# 手动创建 systemd 服务文件
sudo vi /etc/systemd/system/mysql.service

#添加下面内容
[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/data01/mysql/mysql-8.0.27/bin/mysqld --defaults-file=/etc/my.cnf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

#将mysql命令添加到系统指令:在任何目录下执行 mysql -uroot -p 进行登录
sudo ln -s /data01/mysql/mysql-8.0.27/bin/mysql /usr/bin

#重新加载 systemd 并启动服务
sudo systemctl daemon-reload
sudo systemctl enable mysql
sudo systemctl start mysql

登录数据库报错libtinfo.so.5处理:

java 复制代码
# 检查现有的 libtinfo 版本
ls -la /usr/lib64/libtinfo*

# 创建符号链接(假设有 libtinfo.so.6)
sudo ln -sf /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
sudo ln -sf /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

# 验证链接
ls -la /usr/lib64/libtinfo.so.5

9.登录服务并修改密码:

java 复制代码
#登录mysql 使用上面记录的初始化密码
mysql -u root -p密码
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'; 
#刷新权限
flush privileges;

#配置外网连接授权:
#使用当前数据库
use mysql;
#修改root 用户的连接地址现在 localhost 为本机 也可指定固定ip 此处 % 开启所有ip访问
update user set host='%' where user='root';
#刷新权限
flush privileges;

10.打开防火墙端口

java 复制代码
#查看防火墙状态
sudo systemctl status firewalld
sudo systemctl is-enabled firewalld
#打开3306端口
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

最后打开navicat登录数据库验证是否成功。

相关推荐
刺客xs5 分钟前
linux GDB调试器
linux·运维·windows
ONE_SIX_MIX1 小时前
Debian 的 网络管理器 被意外卸载,修复过程
服务器·网络·debian
板鸭〈小号〉1 小时前
connect 的断线重连
运维·服务器
wydaicls2 小时前
Linux 内核伙伴系统在快速路径分配内存时,对一个内存区域(Zone)进行水位线检查和内存压力评估的关键逻辑
linux·服务器
黄昏晓x2 小时前
Linux----权限
linux·运维·服务器
小白不想白a2 小时前
【shell】每日shell练习(系统服务状态监控/系统性能瓶颈分析)
linux·运维·服务器
一匹电信狗2 小时前
【MySQL】数据库的相关操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序
迦蓝叶2 小时前
JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
java·运维·人工智能·网关·spring·ai·开源
bugtraq20213 小时前
为什么.NET的System.IO.Compression无法解压zlib流
linux·运维·服务器
insight^tkk4 小时前
【Docker】记录一次使用docker部署dify网段冲突的问题
运维·人工智能·docker·ai·容器