当前位置:首页 > 问答 > 正文

CentOS 数据库连接方法详解:如何在CentOS系统中连接数据库?

CentOS 🐧 | 数据库连接全攻略:从零到精通的趣味指南 🚀

🔧 基础准备:安装数据库服务

🔹 MySQL 8.x 安装

# 安装MySQL服务器
sudo yum install mysql-server -y
# 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 设置root密码(首次登录无密码)
sudo mysql_secure_installation

🔹 PostgreSQL 15.x 安装

# 添加PostgreSQL官方源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装服务器端
sudo yum install postgresql15-server -y
# 初始化数据库集群
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
# 启动服务
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

🔹 MongoDB 4.x 安装

# 创建安装目录
sudo mkdir -p /opt/mongodb
# 下载并解压(替换最新版本链接)
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.4.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz -C /opt/mongodb
# 创建数据/日志目录
sudo mkdir -p /opt/mongodb/data/db
sudo mkdir -p /opt/mongodb/logs

🔑 配置远程访问权限

🔹 MySQL 远程连接

-- 登录MySQL
sudo mysql -u root
-- 创建远程用户(替换密码)
CREATE USER 'admin'@'%' IDENTIFIED BY 'YourSecurePassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
FLUSH PRIVILEGES;
-- 修改配置文件(/etc/my.cnf)
[mysqld]
bind-address = 0.0.0.0

🔹 PostgreSQL 远程连接

# 修改监听地址(/var/lib/pgsql/15/data/postgresql.conf)
listen_addresses = '*'
# 配置访问控制(/var/lib/pgsql/15/data/pg_hba.conf)
host    all             all             0.0.0.0/0               md5
# 重启服务
sudo systemctl restart postgresql-15

🔹 MongoDB 远程连接

# 编辑配置文件(/opt/mongodb/bin/mongodb.conf)
bind_ip = 0.0.0.0
auth = true
port = 27017
# 创建管理员用户
use admin
db.createUser({
  user: "root",
  pwd: "MongoSecurePass456!",
  roles: ["root"]
})

🔥 防火墙设置:打开数据库端口

# MySQL 3306端口
sudo firewall-cmd --permanent --add-port=3306/tcp
# PostgreSQL 5432端口
sudo firewall-cmd --permanent --add-port=5432/tcp
# MongoDB 27017端口
sudo firewall-cmd --permanent --add-port=27017/tcp
# 刷新防火墙规则
sudo firewall-cmd --reload

🚀 连接数据库实战

🔹 命令行连接

# MySQL连接
mysql -h 服务器IP -u admin -p
# PostgreSQL连接
psql -h 服务器IP -U postgres -d 数据库名
# MongoDB连接
mongo mongodb://root:MongoSecurePass456!@服务器IP:27017/admin

🔹 图形化工具推荐

  • DBeaver:支持所有数据库,跨平台(Windows/Mac/Linux)
  • Navicat:付费但界面友好,支持MySQL/PostgreSQL/MongoDB
  • SSH隧道连接
    # 创建SSH隧道(本地3307映射远程3306)
    ssh -L 3307:localhost:3306 user@服务器IP -N -f

💡 安全增强技巧

  1. SSL加密传输

    CentOS 数据库连接方法详解:如何在CentOS系统中连接数据库?

    • MySQL:生成证书并配置/etc/my.cnf
    • PostgreSQL:启用ssl = on并指定证书路径
  2. 定期审计用户权限

    -- MySQL
    SELECT user,host FROM mysql.user;
    -- PostgreSQL
    SELECT usename, valuntil FROM pg_user;
  3. 备份配置文件

    CentOS 数据库连接方法详解:如何在CentOS系统中连接数据库?

    sudo cp /etc/my.cnf /etc/my.cnf.bak
    sudo cp /var/lib/pgsql/15/data/pg_hba.conf /root/

🎯 常见问题解决

Q1:连接被拒绝?
✅ 检查:

  • 数据库服务是否运行:systemctl status mysqld
  • 防火墙是否开放端口:firewall-cmd --list-ports
  • 用户权限是否包含通配符

Q2:MongoDB连接缓慢?
✅ 优化:

  • 编辑/etc/mongodb.conf,添加:
    net:
      ipv6: false

Q3:PostgreSQL中文乱码?
✅ 解决方案:

-- 修改客户端编码
ALTER ROLE 用户名 SET client_encoding TO 'UTF8';

📅 更新日志(2025-08)

  • 🔄 PostgreSQL 15.7 默认启用SCRAM-SHA-256认证
  • 🔒 MongoDB 4.4+ 强制启用auth=true
  • 🛡️ CentOS 8 默认防火墙策略升级

通过以上步骤,您可以在CentOS系统中轻松实现MySQL、PostgreSQL、MongoDB的本地及远程连接!遇到问题欢迎在评论区留言哦~ 👨💻👩💻

发表评论