MySQL 8.4 安装指南

本指南将详细介绍如何在 Linux (Debian/Ubuntu) 上手动安装 MySQL 8.4,并进行基本配置。

MySQL官网


1. 安装前准备

1.1 更新系统并安装必要依赖

在安装 MySQL 之前,先更新系统包并安装所需的库文件:

sudo apt update && sudo apt upgrade -y
sudo apt-get install -y libaio1 libnuma1 libncurses6
  • libaio1:异步 I/O 支持库,MySQL 运行所需。
  • libnuma1:NUMA(非均匀内存访问)支持库,提高性能。
  • libncurses6:终端用户界面支持库,MySQL 客户端使用。

2. 下载 MySQL 8.4

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz

该命令从 MySQL 官方站点下载 MySQL 8.4.4 二进制包。


3. 创建 MySQL 用户和用户组

为 MySQL 进程创建一个独立用户,确保安全性。

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
  • groupadd mysql:创建 mysql 用户组。
  • useradd -r -g mysql -s /bin/false mysql:创建 mysql 用户,-r 选项创建系统用户,-s /bin/false 使其无法直接登录。

4. 安装 MySQL

4.1 解压并移动到 /usr/local/

cd /usr/local
sudo tar xvf ~/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
sudo mv mysql-8.4.4-linux-glibc2.28-x86_64 mysql
cd /usr/local/mysql
sudo mkdir mysql-files
sudo chmod 750 mysql-files

4.2 设置权限

sudo chown -R mysql:mysql /usr/local/mysql

此步骤确保 MySQL 目录归 mysql 用户所有,避免权限问题。


5. 配置环境变量

5.1 添加 MySQL 到系统路径

echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile
source /etc/profile

这样就可以在任何地方运行 mysql 命令。


6. 配置 MySQL 服务器

6.1 创建 my.cnf 配置文件

cd /etc
sudo touch my.cnf
sudo chown root:root my.cnf
sudo chmod 644 my.cnf

6.2 编辑 my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/mysql_error.log
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF
lower_case_table_names=1
  • datadir:数据存储路径。
  • socket:MySQL 进程使用的 socket 文件。
  • log-error:错误日志文件路径。
  • lower_case_table_names=1:表名大小写不敏感(适用于 Windows 兼容性)。

7. 初始化 MySQL 数据目录

cd /usr/local/mysql
sudo bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure
  • --initialize-insecure:不生成默认 root 密码,允许手动设置。

8. 配置 MySQL systemd 服务

8.1 创建 systemd 服务文件

cd /usr/lib/systemd/system
sudo touch mysqld.service
sudo chmod 644 mysqld.service

8.2 编辑 mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target [Service]
User=mysql
Group=mysql # Have mysqld write its state to the systemd notify socket
Type=notify # Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0 # Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS # Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit
LimitNOFILE = 10000 Restart=on-failure RestartPreventExitStatus=1 # Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1 PrivateTmp=false

8.3 重新加载 systemd 并启用服务

sudo systemctl daemon-reload
sudo systemctl enable mysqld.service
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service

9. 设置 MySQL Root 用户密码

mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

此步骤确保 root 用户有密码,防止安全风险。


10. 验证 MySQL 运行状态

10.1 检查数据库列表

cd /usr/local/mysql
bin/mysqlshow -u root -p

10.2 查看 MySQL 版本

bin/mysqladmin -u root -p version

11. 创建远程登录用户(可选)

登录mysql

mysql -u root -p

创建远程用户

CREATE USER 'zjw'@'%' IDENTIFIED BY '123456';

这里创建了远程用户zjw,密码都为123456

授权远程用户

GRANT ALL PRIVILEGES ON *.* TO 'zjw'@'%' WITH GRANT OPTION;

查看用户

select user,host,plugin from mysql.user;

刷新权限

FLUSH PRIVILEGES;
exit

12. 结论

至此,MySQL 8.4 已成功安装并运行。


MySQL 8.4 卸载步骤

1. 停止 MySQL 服务

sudo systemctl stop mysqld
sudo systemctl disable mysqld

2. 删除 systemd 配置

sudo rm -f /usr/lib/systemd/system/mysqld.service
sudo systemctl daemon-reload

3. 删除 MySQL 用户和用户组(可选)

如果不再需要 mysql 用户,可以删除它。

sudo userdel -r mysql
sudo groupdel mysql

4. 删除 MySQL 目录

sudo rm -rf /usr/local/mysql

5. 删除 MySQL 配置文件

sudo rm -f /etc/my.cnf

6. 删除环境变量

/etc/profile 移除 MySQL 相关的 PATH 设置。

sudo sed -i '/export PATH=\$PATH:\/usr\/local\/mysql\/bin/d' /etc/profile

使更改生效:

source /etc/profile

7. 清理 MySQL 依赖(可选)

如果安装过程中手动安装了 libaio1libnuma1 等库,可以手动卸载它们(如果其他程序不依赖)。

sudo apt-get remove --purge libaio1 libnuma1 libncurses6 -y
sudo apt-get autoremove -y

8. 确保 MySQL 已完全卸载

which mysql  # 确保找不到 mysql
mysql --version # 应该报错

9. 注销并重新登录(推荐)

为了确保所有环境变量更改生效,建议注销当前用户并重新登录。

Debian 12 安装&卸载 MySQL 8.4 教程的更多相关文章

  1. mysql进阶(十八)完全卸载mysql数据库图文教程

    完全卸载mysql数据库图文教程 有时候MySQL不能完全卸载,这时候必须通过一些途径删除掉注册表和一些残余的文件,然后才能重新安装才可以成功! 方法/步骤 1.控制面板-->所有控制面板项-- ...

  2. windows下mysql 8.0.12安装步骤及基本使用教程

    本文实例为大家分享了windows下mysql 8.0.12安装步骤及使用教程,供大家参考,具体内容如下 补充:mysql 已经更新到了 8.0.19,大致步骤和这个差不多,照着来就完事了. 我下载的 ...

  3. linux安装卸载MySQL以及密码设置+Hive测试

    linux系统卸载MYSQL 1,先通过yum方式卸载mysql及相关组件 命令:yum remove mysql* 2.通过命令:rpm -qa|grep -i mysql 查找系统的有关于mysq ...

  4. ubuntu安装/卸载mysql

    1.安装mysql root@openstack001:/tmp# apt-get install mysql-server Reading package lists... Done Buildin ...

  5. linux安装/卸载mysql

    其实安装mysql差不多有10次了吧, 但是每次都有坑,各种百度,太麻烦了,所以这次把坑给记录下来,下次直接用. 1. 去官网下载mysql.这里可以使用wget下载.先去官方网站,找到mysql5. ...

  6. 【Linux】Debian 下安装 Apache,MySQL,PHP

    首先,对你的源进行更新: $ sudo apt-get update 第一步--安装 Apache Apache 是一个开源软件,它目前运行在全球超过 50% 的服务器上,是 LAMP(Linux,A ...

  7. 树莓派3B+安装&卸载mysql

    需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server 1 $ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据 ...

  8. linux(Debian)下安装与MySql的安装、卸载、配置及使用

    参考资料:http://www.cnblogs.com/xusir/p/3334217.html 以下是简要记录. 一.安装 安装:apt-get install mysql-server mysql ...

  9. LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP

    适用环境: 系统支持:CentOS.Ubuntu.Debian 内存要求:≥128M 安装了什么: 1.Nginx-1.2.1 2.MySQL 5.5.25 3.PHP 5.2.17或PHP 5.3. ...

  10. Linux安装卸载Mysql数据库

    关于mysql数据库在Linux下的应用一直以来都是我认为比较棘手的,这次通过搭建Linux学习环境顺便研究和学习Mysql数据库在Linux下安装和卸载. 1.先来看看卸载吧,如下图所示: 以上的命 ...

随机推荐

  1. Android ADB 使用笔记

    ADB 工作原理 当启动某个adb客户端时,该客户端会先检查是否有adb服务器正在运行,如果没有则启动服务器进程.服务器会在启动后与本地TCP端口 5037 绑定,并监听adb客户端 发出的命令. 服 ...

  2. Github Copilot的使用方法和快捷键

    GitHub Copilot是一款由GitHub和OpenAI共同开发的代码智能补全工具,它使用机器学习模型来为你提供代码建议和自动完成,可以加快开发过程并提高代码质量.下面是使用GitHub Cop ...

  3. MySQL - [16] SSL

    MySQL8的SSL功能可以帮助用户更安全地管理数据库,提高数据安全性. 一.SSL概念 SSL(Secure Socket Layer:安全套接字)利用数据加密,身份验证和消息完整性验证机制,为基于 ...

  4. Archlinux 更新失败之驱动与 Xorg 配置错误

    Archlinux系统更新是滚动更新,所以更新失败又被叫做"滚挂了" 此次滚挂发生在1月27日,过了那么久了才想起来该记录了-- 现象 滚挂的现象是,能够进系统,但是笔记本电脑自带 ...

  5. /proc的相关知识

    /proc的相关知识 /proc 介绍 /proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可 ...

  6. Vue3组件通信全攻略:多种方式详解+实战场景,轻松玩转复杂数据流!

    一.组件通信为何如此重要? 在大型Vue项目中,组件通信如同神经网络般贯穿整个应用.良好的通信机制能: 实现组件解耦 提升代码可维护性 构建清晰数据流 支撑复杂业务场景 二.父子组件通信:核心通信模式 ...

  7. js回忆录(4) -- 对象,构造函数

    1.对象 && 构造函数 js是一门基于对象的语言,里边所有的数据类型都可以当对象使唤(当然null和undefined除外),当我们在v8引擎里声明一个对象时会发现每个对象属性里边都 ...

  8. Java 设计模式:装饰者模式(Decorator Pattern)

    一.模式定义 装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式.该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭). 二.核心角色 Co ...

  9. python list 差集

    前言 有时候我们希望基于list得到一个集合C,该集合C的元素可以被描述为元素在集合A中而不在集合B中.即:差集. 基于set A = [1, 2, 3] B = [2, 3, 4] C = set( ...

  10. 虚拟机使用ESXi主机物理硬盘的办法

    虚拟机使用ESXi主机物理硬盘的办法 weixin_33928137 于 2018-06-19 15:22:06 发布 868 收藏 1文章标签: 运维版权 VMware Workstation的虚拟 ...