在搭建LAMP(Linux, Apache, MySQL/MariaDB, PHP)服务器环境时,数据库的安装与配置是至关重要的基础步骤。无论是选择经典的MySQL还是其流行分支MariaDB,正确的安装流程都能为网站或应用程序提供稳定可靠的数据存储支持。本文将详细指导您在Ubuntu、Debian及CentOS/RHEL等主流Linux系统上,完成MySQL数据库的完整安装与安全初始化。

在Debian/Ubuntu系统上安装MySQL数据库
以下是在Ubuntu或Debian Linux发行版上安装MySQL服务器的分步指南,所有操作均需在终端命令行中执行。
1. 更新系统软件包列表
开始安装前,首先更新本地APT软件包仓库的索引,以确保获取到最新的软件版本信息:
sudo apt update
2. 安装MySQL服务器软件包
使用APT包管理器直接安装MySQL服务器:
sudo apt install mysql-server
安装过程中,系统通常会提示您为MySQL的root管理员账户设置一个高强度密码,请务必牢记此密码。
3. 执行MySQL安全加固脚本
安装完成后,强烈建议立即运行官方提供的安全配置向导,以消除默认安装中的潜在风险:
sudo mysql_secure_installation
该脚本将引导您完成多项安全设置,包括移除匿名用户、禁止root账户远程登录、删除测试数据库等。对于生产服务器,建议对所有安全提问都回答“是”(Y)。
4. 登录MySQL验证安装
使用以下命令,通过命令行客户端登录到MySQL数据库,验证安装是否成功:
sudo mysql -u root -p
输入之前设置的root密码后,您将进入MySQL的命令行交互界面。
5. (可选)创建专用数据库与用户
出于安全最佳实践,不建议直接使用root账户管理应用数据。应为每个网站或应用创建独立的数据库和专属用户。在MySQL提示符下执行如下SQL命令:
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
请务必将示例中的mydatabase、myuser和mypassword替换为您实际规划的数据库名、用户名和强密码。
6. (可选)重启MySQL服务
在修改了某些配置或创建新用户后,如需使更改生效,可以重启MySQL服务:
sudo systemctl restart mysql
在CentOS/RHEL系统上安装MySQL服务器
对于CentOS 7、RHEL 7或类似的基于RPM的Linux系统,安装步骤因包管理器不同而有所差异。
1. 添加MySQL官方YUM仓库
首先启用EPEL扩展仓库,并下载安装MySQL社区版的官方仓库配置包:
sudo yum install epel-release
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2. 安装MySQL社区版服务器
sudo yum install mysql-community-server
3. 启动MySQL服务并设为开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
4. 运行安全配置向导
与Ubuntu系统一样,安装后必须运行安全加固脚本:
sudo mysql_secure_installation
5. 登录MySQL数据库
sudo mysql -u root -p
6. (可选)创建应用数据库与用户
创建数据库和授权用户的方法与在Debian/Ubuntu系统中完全一致,在MySQL命令行内执行相应的SQL语句即可。
7. (可选)重启MySQL服务
sudo systemctl restart mysqld
此外,值得注意的是,由于MySQL被Oracle收购后许可证的变化,许多Linux发行版(如最新的Debian和Ubuntu)已默认将MariaDB作为其软件仓库中的MySQL替代品。MariaDB由MySQL原始开发者维护,完全兼容MySQL的命令和API,且保持开源。如果您希望安装MariaDB而非MySQL,在上述所有安装步骤中,只需将命令中的mysql关键字替换为mariadb即可(例如执行sudo apt install mariadb-server)。您可以根据项目需求、兼容性考虑或个人偏好,自由选择安装MySQL或MariaDB来完成LAMP环境的搭建。
