Linux的内核版本太多了,每次换了内核,安装适配就要出点事,这个遇上Ubuntu安装nginx和MySQL时遇到点问题,有必要记录一下,如果文章能解决你的问题,记得点赞一下。毕竟当个好人不容易。
拿到服务器的第一件事就是检查内核:uname -a
Linux sf-ubuntu071049 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
我拿到的是6.8.0-117-generic(Ubuntu 24.04 LTS 系列)比较新,所以nginx和MySQL的版本也要作相应的升级。本人使用的nginx1.26,MySQL8.0.39
安装前还缺失了类库,老规矩上类库地址:
Index of /ubuntu/pool/main/liba/libaio
我缺的是libaio(Linux Native AIO 库),这是 MySQL/MariaDB 初始化必需的依赖
下载版本:libaio1_0.3.112-5_amd64.deb
查询系统是否自带MySQL的密令需要改变,rpm不能用,改用dpkg
# 使用 dpkg 查询(Ubuntu 原生方式)
dpkg -l | grep mariadb
安装密令:
sudo dpkg -i *.deb
检查glibc版本:glibc 版本是 2.39,MySQL8以下的版本安装不了
# 检查系统 glibc 版本
ldd --version
root@sf-ubuntu071049:~# ldd --version
ldd (Ubuntu GLIBC 2.39-0ubuntu8.7) 2.39
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
root@sf-ubuntu071049:~#
MySQL的配置文件my.cnf文件:
[client]
port=3306
socket=/data/wanmagroup/rte/mysql/tmp/mysql.sock
[mysqld]
basedir=/data/wanmagroup/rte/mysql
datadir=/data/wanmagroup/rte/mysql/data
port=3306
socket=/data/wanmagroup/rte/mysql/tmp/mysql.sock
pid-file=/data/wanmagroup/rte/mysql/tmp/mysql.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=INNODB
max_connections=1000
general_log=OFF
expire_logs_days=7
log_error=/data/wanmagroup/rte/mysql/log/error.log
slow_query_log=1
slow_query_log_file=/data/wanmagroup/rte/mysql/log/slow.log
long_query_time=3
innodb_buffer_pool_size=4G
解压和存储及日志文件创建好后,启动MySQL:
cd /data/wanmagroup/rte/mysql
./bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
检查服务状态:systemctl status mysql
看到下面的内容说明启动成功,可以开始登录
mysqld: ready for connections. Version: '8.0.39'
socket: '/data/wanmagroup/rte/mysql/tmp/mysql.sock'
port: 3306
cd /data/wanmagroup/rte/mysql
./bin/mysql -uroot -p
登录成功后i修改密码,log的初始密码,取决于你自己配置的log路径,或者默认log路径里,自启跟其他内核一样:systemctl enable mysql
Ubuntu防护墙开通端口常用密令:
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3305/tcp
ufw enable
ufw status verbose
ufw reload
nginx部分:先下载对应版本,开头就说了nginx1.26,用nginx1.27也行,下面是下载链接
https://nginx.org/packages/ubuntu/pool/nginx/n/nginx/nginx_1.26.3-1~noble_amd64.deb
下载上传后安装:sudo dpkg -i *.deb
安装后,使用nginx -t验证,剩余下的nginx密令跟其他内核一样
systemctl start nginx
systemctl restart nginx
systemctl enable nginx
systemctl status nginx