在 Alibaba Cloud Linux 3.2104(基于 RHEL/CentOS 8/9 体系)上安装数据库,具体步骤取决于你想安装的数据库类型。最常见的两种是:
- MySQL / MariaDB(开源关系型数据库)
- PostgreSQL
- Redis(内存数据库)
- Oracle Database(商业数据库,需单独授权)
下面以最常用且官方推荐的方式——使用系统包管理器 dnf 安装 MySQL 8.0 为例,提供详细步骤。其他数据库类似。
✅ 一、安装 MySQL 8.0(推荐方式)
Alibaba Cloud Linux 3 默认包含 MySQL 模块,可通过 AppStream 仓库直接安装。
1. 更新系统并启用 MySQL 模块
sudo dnf update -y
sudo dnf module list | grep mysql
你会看到类似输出:
mysql MySQL 8.0 server and related modules
...
启用 MySQL 8.0 模块:
sudo dnf module enable mysql:8.0 -y
2. 安装 MySQL Server
sudo dnf install mysql-server -y
3. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
4. 检查服务状态
sudo systemctl status mysqld
应显示 active (running)。
5. 安全初始化(重要!)
MySQL 首次启动后,会生成临时密码。运行安全脚本:
sudo mysql_secure_installation
按提示操作:
- 设置 root 密码
- 删除匿名用户
- 禁止远程 root 登录
- 删除 test 数据库
- 刷新权限
💡 如果你希望跳过交互式设置,也可以手动重置 root 密码(见下文“常见问题”)。
6. 验证安装
mysql -u root -p
输入密码后进入 MySQL 命令行,执行:
SELECT VERSION();
✅ 二、安装 PostgreSQL(可选)
sudo dnf install postgresql-server -y
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
默认用户为 postgres,切换用户设置密码:
sudo su - postgres
psql
password postgres
q
exit
✅ 三、安装 Redis(可选)
sudo dnf install redis -y
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis
测试连接:
redis-cli ping
# 应返回 PONG
❗ 常见问题与注意事项
1. 忘记 MySQL root 密码?
编辑 /etc/my.cnf,在 [mysqld] 段添加:
skip-grant-tables
重启 MySQL:
sudo systemctl restart mysqld
然后无密码登录:
mysql -u root
执行:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;
删除 /etc/my.cnf 中的 skip-grant-tables,再重启 MySQL。
2. 允许远程访问 MySQL?
编辑 /etc/my.cnf.d/mysql-server.cnf,找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
或注释掉该行。
然后在 MySQL 中创建允许远程登录的用户:
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
⚠️ 安全警告:生产环境建议使用防火墙限制 IP,而非开放所有地址。
3. 防火墙配置
如果从外部连接数据库,需开放端口:
sudo firewall-cmd --permanent --add-port=3306/tcp # MySQL
sudo firewall-cmd --permanent --add-port=5432/tcp # PostgreSQL
sudo firewall-cmd --permanent --add-port=6379/tcp # Redis
sudo firewall-cmd --reload
或在阿里云控制台安全组中放行对应端口。
4. 使用 Docker 安装(替代方案)
如果你更喜欢容器化部署:
sudo dnf install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
docker run -d --name mysql
-e MYSQL_ROOT_PASSWORD=yourpassword
-p 3306:3306
mysql:8.0
📌 总结
| 数据库 | 安装命令 | 默认端口 |
|---|---|---|
| MySQL | dnf install mysql-server |
3306 |
| PostgreSQL | dnf install postgresql-server |
5432 |
| Redis | dnf install redis |
6379 |
| MongoDB | 需添加 EPEL 或官方源 | 27017 |
💡 建议:对于生产环境,推荐使用阿里云 RDS(托管数据库服务),可自动备份、高可用、安全加固,无需手动维护。
如需安装其他数据库(如 Oracle、SQL Server、MongoDB 等),请告知,我可提供对应步骤。
PHPWP博客