找回密码
 立即注册
搜索

[数据库] AlmaLinux 9.6 安装 MySQL 8.0.39

[复制链接]
智慧谋略 发表于 2025-11-8 15:25:03 | 显示全部楼层 |阅读模式
步骤1:准备工作 - 清场与开门
检查旧版本 (避免冲突):
sudo rpm -qa|grep mysql  
# 查看系统已安装的mysql相关包
注释:rpm -qa列出所有已安装包,grep mysql过滤出名字含mysql的。如果看到有 mysql-*或 mariadb-*(MariaDB是MySQL的一个分支),强烈建议先卸载干净!(新手坑点1:残留旧版本导致冲突)
如果发现旧包,卸载命令:
sudo rpm -e --nodeps <包名1> <包名2> ...
# 强制卸载,忽略依赖(谨慎,确保知道在做什么) # 例如: sudo rpm -e --nodeps mysql-community-libs-8.0.30-1.el8.x86_64
注释:--nodeps表示强制卸载,即使有依赖关系。卸载后最好 sudo reboot重启一下系统更干净。

MySQL官方提供了二进制安装包可以在Linux系统下通用。无论是基于Debian的Ubuntu系列还是Redhat系列的CentOS是可以,终于可以只用专注一种安装方式了。
ubuntu系统 执行 sudo -i 切换到root 方便操作

查看系统是否支持glibc2.28
因为安装的版本比较新需要新版glic2.28
redhat、centos系列使用以下命令
strings /lib64/libc.so.6 | grep GLIBC_2.28
有输出版本号证明支持


移除旧版本
如果你安装过mysql 为了防止出现奇奇怪怪问题,我们把旧版本卸载删除相关包和残留文件
redhat、centos系列使用yum命令
    # yum 查询已安装的 MySQL 相关包
    rpm -qa | grep -i mysql
    # 卸载 MySQL 相关包
    yum remove mysql-*
    # 卸载完再查询还有无相关包
    rpm -qa | grep -i mysql
debian、ubuntu系列使用apt命令
    # 卸载mysql相关
    apt-get remove --purge mysql-*
    # 清除残留
    apt-get autoremove
    apt-get autoclean

删除相关配置文件和安装目录
   rm -rf /etc/my.cnf
   rm -rf /var/lib/mysql
   rm -rf /etc/mysql


安装mysql依赖
安装mysql所需要的依赖
redhat、centos系列使用安装必备依赖(libaio、libtirpc、ncurses、openssl 等)
sudo dnf -y install libaio libaio-devel libtirpc libtirpc-devel \
ncurses ncurses-devel openssl openssl-devel perl-Data-Dumper

debian、ubuntu系列使用apt命令
apt-get install libaio1

MySQL ::下载 MySQL Community Server

选择系统、版本、glic版本后,下载包缩包

注:如果不知道该选什么glic版本,可以运行命令:

ldd --version
输出:ldd (GNU libc) 2.34

表示该机的glic版本是:2.34

下载并上传安装包如果你还没下载安装包,可直接在服务器上用wget下载(或通过宝塔面板上传到/tmp目录)

解压安装包
  1. wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz -P /tmp
复制代码

二、安装 MySQL 8.0.39
  • 解压安装包到指定目录
MySQL 通常安装在/usr/local目录,解压并创建软链接(方便后续升级):
  1. # 解压
  2. sudo tar -xvf /tmp/mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
  3. # 重命名为mysql(或创建软链接)
  4. sudo mv /usr/local/mysql-8.0.39-linux-glibc2.28-x86_64 /usr/local/mysql
复制代码
创建 MySQL 用户和组
避免用 root 运行 MySQL,创建专用用户:
  1. sudo groupadd mysql
  2. sudo useradd -r -g mysql -s /sbin/nologin mysql  # -r表示系统用户,无登录权限
复制代码
初始化数据库
生成数据目录和初始配置(记录临时密码,后续会用到):
  1. # 进入MySQL安装目录的bin目录
  2. cd /usr/local/mysql/bin/
  3. # 初始化(--initialize表示生成临时密码,--user指定运行用户)
  4. sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
复制代码
执行后会输出一段日志,其中包含临时密码(类似:A temporary password is generated for root@localhost: xxxxxxx),记录下来
三、配置 MySQL 服务
  • 创建配置文件
新建/etc/my.cnf(MySQL 默认读取的配置文件),内容如下:
  1. sudo vim /etc/my.cnf
复制代码
写入:
  1. [mysqld]
  2. # MySQL安装目录
  3. basedir = /usr/local/mysql
  4. # 数据目录(初始化时指定的datadir)
  5. datadir = /usr/local/mysql/data
  6. # 服务端生成的socket文件路径(必须与客户端一致)
  7. socket = /usr/local/mysql/data/mysql.sock
  8. # 端口(默认3306,避免冲突)
  9. port = 3306
  10. # 字符集(推荐utf8mb4,支持emoji)
  11. character-set-server = utf8mb4
  12. collation-server = utf8mb4_general_ci
  13. # 错误日志路径(必须存在且有权限)
  14. log-error = /usr/local/mysql/data/mysqld.log
  15. # 进程ID文件路径
  16. pid-file = /usr/local/mysql/data/mysqld.pid

  17. [client]
  18. # 客户端连接时使用的socket路径(必须与服务端一致)
  19. socket = /usr/local/mysql/data/mysql.sock
  20. # 客户端字符集
  21. default-character-set = utf8mb4
复制代码
保存退出(esc + :wq)。
创建系统服务(方便启停)
让 systemd 管理 MySQL 服务,创建服务文件:
  1. sudo vim /usr/lib/systemd/system/mysql.service
复制代码
写入
  1. [Unit]
  2. Description=MySQL Server
  3. After=network.target

  4. [Service]
  5. User=mysql
  6. Group=mysql
  7. Type=forking
  8. ExecStart=/usr/local/mysql/support-files/mysql.server start
  9. ExecStop=/usr/local/mysql/support-files/mysql.server stop
  10. ExecReload=/usr/local/mysql/support-files/mysql.server reload
  11. PrivateTmp=true

  12. [Install]
  13. WantedBy=multi-user.target
复制代码
保存退出。
重载服务并启动 MySQL
  1. # 重载systemd配置
  2. sudo systemctl daemon-reload
  3. # 启动MySQL
  4. sudo systemctl start mysql
  5. # 设置开机自启
  6. sudo systemctl enable mysql
复制代码

初始化安全配置
  • 登录 MySQL 并修改密码
使用初始化时的临时密码登录:
  1. <div class="content-y8qlFa code-content light-scrollbar-FFk5j5"><pre class="container-S2LAkl language-bash"><code class="language-bash"><span class="token comment"># 进入bin目录(或配置环境变量,见步骤5)</span>
  2. <span class="token builtin class-name">cd</span> /usr/local/mysql/bin/
  3. ./mysql <span class="token parameter variable">-u</span> root <span class="token parameter variable">-p</span></code></pre></div>
复制代码
输入临时密码后,执行以下命令修改密码(替换新密码为你的密码):
  1. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';  # 密码需包含大小写、数字、特殊字符
  2. flush privileges;  # 刷新权限
复制代码
配置环境变量(可选)为了在任意目录使用mysql命令,添加环境变量:
  1. sudo vim /etc/profile.d/mysql.sh
复制代码
写入:
export PATH=$PATH:/usr/local/mysql/bin
保存后生效:
  1. source /etc/profile.d/mysql.sh
复制代码
防火墙 & SELinux(如果启用)
  1. # 开放 3306 端口
  2. sudo firewall-cmd --add-port=3306/tcp --permanent
  3. sudo firewall-cmd --reload

  4. # 临时关闭 SELinux 进行测试(生产环境建议设为 permissive 或自行编写策略)
  5. sudo setenforce 0
  6. # 若需要永久宽松模式:
  7. sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
复制代码
验证安装
  1. mysqladmin -u root -p version
  2. # 或
  3. mysql -u admin -p -e "SELECT VERSION();"
复制代码
输出应为 8.0.39,说明安装成功。


六、与宝塔面板关联(可选)
如果需要在宝塔面板中管理该 MySQL:
  • 登录宝塔面板,进入「数据库」页面。
  • 点击「添加数据库」,选择「已有数据库」,填写 MySQL 的连接信息(地址127.0.0.1,端口3306,root 账号和密码)。
按以上步骤操作,即可完成 MySQL 8.0.39 的手动安装。

设置配置文件
配置文件位于 /etc/my.cnf
创建配置文件
gedit /etc/my.cnf
文件中写入以下内容(配置文件根据自己需要调整)
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
高级模式
B Color Image Link Quote Code Smilies

本版积分规则