努力
加油

CentOS 7.1 64位环境下配置数据库服务器的步骤是什么?

在 CentOS 7.1 这种相对古老的系统版本上配置数据库服务器,核心思路其实和现代 Linux 发行版差别不大,但有几个“坑”需要特别注意,尤其是网络源连接、软件包依赖以及防火墙策略。

这里以目前最主流、生产环境使用率最高的 MySQL(或者其分支 MariaDB)为例,梳理一套标准的部署流程。如果你用的是 PostgreSQL,步骤大同小异,只是命令不同。

前置准备:环境确认与基础优化

首先,登录服务器后,先别急着装数据库,把基础环境理顺。CentOS 7.1 默认使用的是 yum 包管理器,且内核较老,建议先更新一下系统内核和安全补丁。

# 更新所有系统包
sudo yum update -y

# 检查当前版本,确保是 7.1
cat /etc/redhat-release

重要提示: CentOS 7.1 的官方 YUM 源(BaseOS)可能已经归档或迁移,导致直接 yum install 报错。如果遇到无法解析主机的问题,可能需要更换为阿里云镜像源或清华镜像源。这一步很关键,否则后面全都会卡住。

第一步:安装数据库软件

在 CentOS 7 系列中,MariaDB 是 MySQL 的原生替代品,也是默认推荐的数据库。两者 API 兼容,操作命令几乎一样。

# 安装 MariaDB 服务端和客户端
sudo yum install mariadb-server mariadb -y

如果你的业务强依赖 MySQL 5.7/8.0 的特性,则需要通过 Oracle 官方 YUM 仓库添加源来安装 MySQL。但对于大多数场景,MariaDB 足够稳定且省心。

第二步:启动服务并设置开机自启

安装完成后,服务不会自动运行。你需要手动启动它,并确保重启服务器后能自动拉起。

# 启动 MariaDB 服务
sudo systemctl start mariadb

# 设置开机自启
sudo systemctl enable mariadb

# 查看状态,确保是 active (running)
sudo systemctl status mariadb

第三步:初始化安全配置(至关重要)

这是新手最容易忽略的一步。刚装好的数据库默认有一个空密码的 root 用户,且允许远程匿名连接,极度不安全。必须运行安全脚本进行加固。

sudo mysql_secure_installation

执行过程中会提示你回答几个问题,建议按以下逻辑操作:

  1. Enter current password for root: 直接回车(初始无密码)。
  2. Set root password? [Y/n]: 输入 Y,然后设置一个强密码。
  3. Remove anonymous users? [Y/n]: 输入 Y,删除匿名用户。
  4. Disallow root login remotely? [Y/n]: 输入 Y,禁止 root 远程登录(推荐做法,后续用普通账号远程管理)。
  5. Remove test database and access to it? [Y/n]: 输入 Y,删除测试库。
  6. Reload privilege tables now? [Y/n]: 输入 Y,刷新权限表。

第四步:配置远程访问(如需外部连接)

如果你需要从本地电脑或其他服务器连接这台数据库,需要放行防火墙端口(默认 3306)。

1. 修改防火墙规则:

# 如果是 firewalld(CentOS 7 默认)
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

2. 创建允许远程访问的用户:

不要直接用 root 去连远程,创建一个专用账户更安全。

# 登录数据库
mysql -u root -p

# 进入 SQL 命令行后执行:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

注意:% 表示允许任意 IP 访问。为了安全起见,生产环境中最好将 % 替换为具体的客户端 IP 地址,例如 'remote_user'@'192.168.1.100'。

第五步:基础性能调优(可选但推荐)

默认的 my.cnf 配置文件(通常在 /etc/my.cnf)是针对通用场景的。如果你的服务器内存较大(比如 4G+),可以适当调整缓冲池大小以提升查询速度。

编辑 /etc/my.cnf,在 [mysqld] 段落下添加或修改:

[mysqld]
# 根据服务器内存大小调整,通常设为物理内存的 50%-70%
innodb_buffer_pool_size = 1G

# 日志文件位置,确保磁盘空间充足
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

保存后重启服务使配置生效:

sudo systemctl restart mariadb

常见问题排查

  1. 连接超时:检查云服务器控制台的安全组是否放行了 3306 端口。很多云厂商(如阿里云、腾讯云)除了系统防火墙外,还有一个独立的安全组策略,双重拦截容易让人困惑。
  2. 中文乱码:如果应用出现乱码,需要在 /etc/my.cnf 的 [mysqld] 和 [client] 下统一指定字符集:
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci

    修改后重启服务即可。

这套流程覆盖了从安装到安全加固再到远程访问的核心环节。在 CentOS 7.1 这种老版本上,稳定性往往优于新功能,只要网络源通畅、权限配置得当,它能非常可靠地支撑起中小型业务的数据库需求。