VPS(Virtual Private Server,虚拟专用服务器)因其独立性和灵活性,成为许多开发者和企业搭建应用服务器的首选,在VPS上安装数据库是常见的操作,无论是部署网站、应用程序还是存储业务数据,都离不开数据库的支持,本文将详细介绍如何在VPS上安装常用的数据库管理系统,以MySQL和PostgreSQL为例,涵盖安装前的准备工作、具体安装步骤、配置优化及安全加固等内容,帮助用户顺利完成数据库的部署。

安装前的准备工作
在开始安装数据库之前,确保VPS环境满足基本要求是关键,选择合适的操作系统,主流的Linux发行版如Ubuntu、CentOS等都有良好的数据库支持,以Ubuntu 20.04为例,建议确保系统已更新至最新状态,可通过执行sudo apt update && sudo apt upgrade -y
命令完成,根据业务需求选择合适的数据库版本,MySQL 8.0和PostgreSQL 13是目前较为稳定的版本,需确认VPS的资源配置,包括CPU核心数、内存大小和磁盘空间,建议至少分配2GB内存和20GB磁盘空间以保证数据库运行流畅,为数据库创建专用用户并配置sudo权限,避免使用root用户直接操作,提升系统安全性。
MySQL数据库的安装与配置
MySQL是广泛使用的开源关系型数据库管理系统,其安装过程相对简单,在Ubuntu系统上,可通过以下步骤完成安装:
- 添加MySQL官方仓库:首先下载并添加MySQL的APT仓库密钥,执行命令
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
,然后使用sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
添加仓库,并在配置界面选择默认版本(如MySQL 8.0)。 - 更新并安装MySQL:执行
sudo apt update
更新软件包列表,然后运行sudo apt install mysql-server
开始安装,安装过程中会提示设置root用户的密码,需设置强密码并妥善保存。 - 安全配置:安装完成后,运行
sudo mysql_secure_installation
脚本,该脚本会引导用户完成root密码重置、匿名用户删除、远程访问限制等安全设置,建议全部选择“是”以增强安全性。 - 启动与自启服务:通过
sudo systemctl start mysql
启动MySQL服务,并使用sudo systemctl enable mysql
设置开机自启,检查服务状态可执行sudo systemctl status mysql
。
若使用CentOS系统,安装方式略有不同,需先添加MySQL的Yum仓库,执行sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -y
,然后通过sudo yum install mysql-community-server
安装,后续配置步骤与Ubuntu类似。
PostgreSQL数据库的安装与配置
PostgreSQL是另一款强大的开源关系型数据库,以其稳定性和扩展性著称,在Ubuntu系统上安装PostgreSQL的步骤如下:

- 添加PostgreSQL仓库:PostgreSQL官方提供了PPA仓库,可通过
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
添加,然后导入密钥wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
。 - 安装PostgreSQL:执行
sudo apt update
更新列表后,运行sudo apt install postgresql postgresql-contrib
安装数据库及扩展工具,安装完成后,PostgreSQL会自动启动并设置为开机自启。 - 角色与数据库初始化:PostgreSQL默认创建postgres用户,可通过
sudo -u postgres psql
登录数据库控制台,执行CREATE USER username WITH PASSWORD 'password';
创建新用户,CREATE DATABASE database_name OWNER username;
创建数据库,并使用GRANT ALL PRIVILEGES ON DATABASE database_name TO username;
授权。 - 配置远程访问:编辑
/etc/postgresql/13/main/postgresql.conf
文件,将listen_addresses = 'localhost'
修改为listen_addresses = '*'
以允许远程连接,然后在pg_hba.conf
文件中添加host all all 0.0.0.0/0 md5
启用基于密码的远程访问,最后重启服务sudo systemctl restart postgresql
。
在CentOS系统上,可通过sudo yum install postgresql-server postgresql-contrib
安装,然后执行sudo postgresql-setup --initdb
初始化数据库,后续配置步骤与Ubuntu一致。
数据库的基本优化与安全加固
安装完成后,需对数据库进行优化和安全加固,性能优化方面,可通过调整my.cnf
(MySQL)或postgresql.conf
中的参数实现,例如增加innodb_buffer_pool_size
(MySQL)或shared_buffers
(PostgreSQL)的值,建议设置为系统内存的50%-70%,安全加固方面,除了前述的安全配置脚本外,还需定期更新数据库版本,禁用不必要的远程访问,仅允许特定IP连接数据库,启用SSL/TLS加密传输数据可防止中间人攻击,可通过配置数据库的SSL证书实现。
相关问答FAQs
问题1:如何修改MySQL的root密码?
解答:若忘记root密码,可通过以下步骤重置:1. 停止MySQL服务sudo systemctl stop mysql
;2. 跳过权限表启动sudo mysqld_safe --skip-grant-tables &
;3. 登录MySQLmysql -u root
;4. 执行FLUSH PRIVILEGES;
,然后ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
;5. 重启MySQL服务sudo systemctl restart mysql
。
问题2:PostgreSQL如何允许特定IP远程访问?**
解答:编辑/etc/postgresql/13/main/pg_hba.conf
文件,添加规则如host all all 192.168.1.100/32 md5
(仅允许IP 192.168.1.100访问),然后修改postgresql.conf
中的listen_addresses
为,最后重启服务sudo systemctl restart postgresql
即可。
