如何在 Debian 12 上安装 MySQL

下载 MySQL

Debian 12 中并不包含 MySQL 软件包,其已经被 MariaDB 替换,我们需要从 MySQL 官网进行下载安装。

如果您想安装 MariaDB ,可以看之前的这篇教程:如何在 Debian 12上安装 MariaDB

首选,进入 MySQL存储库下载页面,下载最新软件包。也可以在命令界面下使用wget命令下载最新的发行包。

复制代码
wget https://repo.mysql.com/mysql-apt-config_0.8.29-1_all.deb

其次,下载完成后,使用如下命令进行安装。

复制代码
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb

执行如上命令后,你会看到如下的MySQL 配置安装界面。

默认选择了 MySQL 8.0。

安装MySQL

我们将安装 MySQL 8.0 版, 通过按 Tab 键选择 "确定",然后按 Enter 键(如上图所示)。

使用以下命令更新软件包,并安装MySQL。

复制代码
sudo apt update
sudo apt install mysql-server

安装过程中将会弹出设置 MySQL root 密码的对话框,这一步先不设置,Tab键切换到 "OK" 继续,我们在下一章节中进行配置。

接下来,会显示一条消息,通知您有关新的 MySQL 8 身份验证的信息。

按照提示安装完成后,MySQL 服务会默认自动运行,我们可以通过命令查看服务运行状态:

复制代码
sudo systemctl status mysql

你可以看到如下内容的输出:

复制代码
● mysql.service - MySQL Community Server
  Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
  Active: active (running) since Fri 2024-01-14 13:16:27 CST; 18s ago
  ...

安全加固MySQL

MySQL 安装完成后,为了让 MySQL 更加安全,运行以下命令配置 MySQL root 密码并使安装的 MySQL 更安全。

复制代码
sudo mysql_secure_installation

系统将要求您配置 VALIDATE PASSWORD PLUGIN(验证密码插件),该插件用于测试 MySQL 用户密码的强度。 密码验证策略分为三个级别:低,中和强。 如果您不想设置验证密码插件,请按 Enter。

之后开始设置密码,以及询问是否移除 MySQL 中的 anonymous 用户,禁用 root 帐号远程登录等一些列为了 MySQL 加强安全的问题,所有内容如无个人特殊要求,默认建议都输入"y"后,回车。

命令行连接MySQL

在终端中可以输入mysql客户端命令来连接mysql服务:

选择默认的身份验证方法以root用户身份登录到MySQL服务器:

复制代码
mysql 

选择传统身份验证方法登录,请输入:

复制代码
mysql -uroot -p

这是输入之前设定的 MySQL root 帐号密码。

连接成功后你将会看到类似如下内容:

复制代码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.1.0 MySQL Community Server - GPL
...
mysql>

现在你可以执行 MySQL 的数据库 SQL 语句进行操作了。

写在最后

在本教程中,你学习了如何在 Debian 12 服务器上安装 MySQL。你也知道了如何加固 MySQL 使其更安全,并通过 MySQL shell 连接 MySQL 服务。

如果你正需要学习在 Debian 12 中安装 MySQL,不妨在你自己的 VPS 中开始尝试一下吧。

相关推荐
百万蹄蹄向前冲9 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
华章酱9 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-9 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
aramae10 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
这个DBA有点耶11 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
李少兄11 小时前
数据库批量清理前置防御:如何严谨校验目标表是否存在
mysql
香吧香11 小时前
Docker Swarm 线上环境 MariaDB XA 悬停事务故障排查
mysql·异常
小白男神12 小时前
MySQL进阶学习三(视图)
后端·mysql
文人sec15 小时前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
高级程序源15 小时前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计