近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...

上期文章: Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇

LNMP环境包之‘M’——MySQL

本文将使用手动安装MySQL的方式来介绍流程。

下载软件包

MySQL社区版官网下载地址: MySQL Community Downloads

进入网站,选择系统版本(以本文Debian 10.2为例):

接下来直接点击第一行的 DEB Bundle 右侧下载按钮进入下载页面,无需注册登录账户,直接点击最下方"No thanks, just start my download."即可获取到下载链接,也可以右键复制该超链接,进入SSH使用wegt下载该链接

安装软件包

MySQL 8.9.29下载直链:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

新建文件夹并将下载的tar包移动进去,因为解压会解压出大量依赖与组件包:

mkdir mysql && cd mysql
tar -xvf mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar
rm mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

之后可以在目录里面看到一堆MySQL相关的软件包:

注意:MySQL手动安装软件包是需要顺序的,否则会报错提醒MySQL-xxx未安装(顺序不一定完全一致,此处为个人经验)

dpkg -i mysql-common_8.0.29-1debian10_amd64.deb
apt install libmecab2 libnuma1
dpkg -i mysql-community-server-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-plugins_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-server_8.0.29-1debian10_amd64.deb

安装完最后一个软件包后,会自动弹出配置窗口,一般情况下第一个页面是需要设置root密码,输入后回车;第二个页面为确认密码,重新输入一次;第三页选择Use Strong Password Encryption (RECOMMENDED)

最后查看版本号,如果输出正常即为安装成功

mysql -V

类似输出:mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community Server - GPL)

设置开机自启

在一些平台上,MySQL进程名一般为mysqld,但是在Debian 10系统环境下,暂不知道是版本问题还是环境问题,这里使用的进程名字是mysql

设置开机启动,并手动启动mysql,最后查看运行状态,如无报错即为运行正常

systemctl enable mysql
systemctl start mysql
systemctl status mysql

配置MySQL

执行以下命令,执行 MySQL 安全性操作并设置密码(如果前面有设置的话,这步里面设置密码环节可以跳过)

mysql_secure_installation

输入指令后,根据下面流程进行配置:

  • 输入root密码启动配置流程
  • 输入 y 并按 Enter 开始相关配置
  • 选择密码验证策略强度,建议选择高强度的密码验证策略。输入 2 并回车

    • 0:表示低
    • 1:表示中
    • 2:表示高
  • 设置root的密码,如上面配置界面有设置的话,可直接回车忽略进行下一步
  • 设置是否移除匿名用户,为了安全性,输入 y 移除匿名用户
  • 设置是否禁止使用root用户远程登录,输入 y 禁止root远程登录
  • 设置是否删除test数据库以及权限,正式环境下不需要这个数据库,输入 y 删除即可
  • 重新加载授权表,输入 y 即可

以下为测试环境下的配置流程图:

有关数据库的操作与用户的增删,本文不再详细描述。