近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用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
即可
以下为测试环境下的配置流程图:
有关数据库的操作与用户的增删,本文不再详细描述。