大家好,我是“小虾米”。上一篇我们带大家成功部署了 Nginx,并在浏览器里见证了属于自己的第一个静态网页。那么,今天我们就进入“基于 Linux 系统的基础服务搭建”第二篇。今天的主角,就是被称为现代 Web 系统“核心心脏”的MySQL 数据库!这里我们是初识MySQL,所以先全都按照默认配置来做,后续会有更详细的数据库教程做一些针对企业级的配置优化,敬请持续关注。1. 快速安装:用 apt 部署 MySQL 服务
在 Ubuntu 系统中,安装 MySQL 同样非常高效。我们通过 apt 工具直接从官方软件源拉取并安装:sudo apt install -y mysql-server
小贴士:安装完成后,MySQL 服务会自动启动,并被注册为系统后台守护进程。可以运行以下命令,查看详情:systemctl status mysql.service
2. 安全初始化:避开新手最易踩的“密码与漏洞”大坑
刚安装完 MySQL 时,官方提供了一个非常强大的安全初始化脚本。我们可以通过终端执行:sudo mysql_secure_installation# 运行 MySQL 安全初始化向导脚本,用于加固数据库安全
(1)Validate Password Component (密码强度校验插件):建议输入 Y 开启。它会强制要求你的 root 密码必须包含大写字母、小写字母、数字和特殊符号,防止弱密码被暴力破解。(2)Remove anonymous users (移除匿名用户):输入 Y。默认的匿名用户允许任何人无需密码登录,必须删除!(3)Disallow root login remotely (禁止 root 远程登录):输入 Y。出于安全考虑,超级管理员 root 只能在本地(localhost)登录,严禁直接从外网远程连接 root。(4)Remove test database (删除测试数据库):输入 Y。系统自带的 test 数据库谁都可以访问,存在安全风险,直接删掉。(5)Reload privilege tables (重新加载权限表):输入 Y,让刚才的所有安全改动立即生效。(通过上述 5 步加固,你的 MySQL 数据库就筑起了第一道安全防线。)3. 登录与实战(一):修改默认认证方式
刚安装的 MySQL 默认使用系统的 auth_socket 插件,这意味着只要你在终端使用 sudo 就可以免密直接登录。sudo mysql# 1. 以系统管理员身份直接免密登录 MySQL 终端
SELECT user, host, plugin FROM mysql.user WHERE user='root';
这种方式只允许本地的系统 root 用户 通过特殊的套接字(Socket)直接连接,因为我们后续还要对接应用程序来连接,所以我们需要做一些修改,将认证插件修改为密码模式(在 MySQL 8.4 中,默认使用的是 caching_sha2_password)。mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '您的新密码';Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)mysql> EXIT;Bye
输入 sudo mysql,已经没法登录 root@localhost 这个账号了。接着我们输入 mysql -uroot -p,以及刚才设置的强密码,可以登录。SELECT user, host, plugin FROM mysql.user WHERE user='root';
确认认证方式已经修改为caching_sha2_password。3. 登录与实战(二):创建专用的业务用户与数据库接下来我们就可以开始创建后续项目需要的数据库,进入 MySQL 交互式命令行后,执行以下完整的初始化 SQL 脚本:-- 创建一个专用于业务系统的数据库(设置编码为 utf8mb4,支持中文和 Emoji 表情)CREATE DATABASE itops_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 创建一个专用业务数据库用户(只能从本地连接,密码设为强密码)CREATE USER 'it_user'@'localhost' IDENTIFIED BY '你的强密码';-- 将该业务数据库的所有操作权限,精准赋权给这个专用用户GRANT ALL PRIVILEGES ON it_db.* TO 'it_user'@'localhost';-- 刷新系统权限表,使赋权立即生效FLUSH PRIVILEGES;-- 退出 MySQL 命令行终端EXIT;
上述操作遵循了标准的“最小权限原则”——绝不让应用程序直接使用 root 账号去连数据库,而是单独开辟一个专属账号和专属数据库,把安全风险降到最低。4. 给读者的小作业:
今天我们学习了 MySQL 的安装、安全初始化脚本配置以及专用数据库用户的创建,请到你的服务器上动手练习吧:(1)使用 sudo apt install -y mysql-server 安装 MySQL。(2)运行 sudo mysql_secure_installation 完成安全加固。(3)登录数据库,先修改默认的认证方式,接着再创建一个属于你自己的业务数据库和用户。在评论区告诉我:你在运行安全初始化脚本时,对于密码强度的校验选择,有没有一次性顺利通过?下篇预告:下一篇我们将进入“基于 Linux 系统的基础服务搭建”第三篇——《动态生态打通》,教你如何安装 PHP-FPM 并完美对接 Nginx,彻底打通 LNMP 动态网页的闭环,敬请期待!「IT运维技能进阶」系列文章持续更新中,可以直接点击访问。