MySQL、PostgreSQL关系型和MongoDB 和 Redis非关系型数据库
一、前期准备
在安装和使用数据库之前,确保你的 CentOS 7 系统具备以下条件:
- 系统安装了基本的开发工具:如
gcc
、make
等。 - 有权限使用
sudo
命令。 - 有良好的网络环境以下载软件包。
你可以通过以下命令确保系统软件包是最新的:
sudo yum update -y
二、关系型数据库
1. MySQL
MySQL 是最流行的开源关系型数据库之一,广泛应用于Web应用、ERP系统等场景。接下来详细讲解如何在 CentOS 7上安装、配置、使用以及开发中的 SQL 示例。
1.1 CentOS 7 安装 MySQL
-
安装 MySQL 官方源:
CentOS 7 默认的 yum 源中没有 MySQL,因此需要先下载安装 MySQL 官方源。sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
-
安装 MySQL:
sudo yum install mysql-server -y
-
启动 MySQL 并设置为开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
-
设置初始 root 密码:
MySQL 安装完成后会生成一个初始密码,使用以下命令查看:sudo grep 'temporary password' /var/log/mysqld.log
使用这个密码登录并强制修改:
mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
1.2 MySQL 开发使用
-
创建数据库:
CREATE DATABASE testdb;
-
创建表:
USE testdb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), email VARCHAR(50), password VARCHAR(255) );
-
插入数据:
INSERT INTO users (username, email, password) VALUES ('user1', 'user1@example.com', 'pass123');
-
查询数据:
SELECT * FROM users;
-
高级操作:复杂查询与事务:
- 联合查询:
SELECT u.username, o.order_id FROM users u JOIN orders o ON u.id = o.user_id;
- 事务操作:
START TRANSACTION; UPDATE users SET password='newpass' WHERE username='user1'; COMMIT;
- 联合查询:
1.3 PC 上的 MySQL 安装
在 PC(Windows 或 macOS)上安装 MySQL,可以通过 MySQL 官网下载合适版本:
下载完成后按照安装向导安装,并根据需求设置用户名和密码。
2. PostgreSQL
PostgreSQL 是一个高扩展性和标准化的关系型数据库,支持复杂的数据类型和查询,常用于金融、GIS等高要求的数据处理场景。
2.1 CentOS 7 安装 PostgreSQL
-
添加 PostgreSQL 仓库:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-centos10-10-2.noarch.rpm
-
安装 PostgreSQL:
sudo yum install -y postgresql10-server postgresql10
-
初始化数据库并启动:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10
2.2 PostgreSQL 开发使用
-
创建用户和数据库:
sudo -u postgres psql
在
psql
中:CREATE USER devuser WITH PASSWORD 'devpassword'; CREATE DATABASE devdb OWNER devuser; GRANT ALL PRIVILEGES ON DATABASE devdb TO devuser;
-
表和数据操作:
\c devdb; CREATE TABLE products ( id SERIAL PRIMARY KEY, name VARCHAR(100), price NUMERIC(12, 2) ); INSERT INTO products (name, price) VALUES ('Laptop', 999.99); SELECT * FROM products;
-
高级操作:复杂查询与函数:
- 窗口函数:
SELECT name, price, RANK() OVER (ORDER BY price DESC) FROM products;
- 自定义函数:
CREATE FUNCTION calculate_discount(price NUMERIC) RETURNS NUMERIC AS $$ BEGIN RETURN price * 0.9; END; $$ LANGUAGE plpgsql;
- 窗口函数:
- MySQL 和 PostgreSQL 是关系型数据库,适合复杂事务和查询的场景。MySQL 更加简便,PostgreSQL 更加标准化和强大
三、非关系型数据库
1. MongoDB
MongoDB 是一种文档型的 NoSQL 数据库,使用 JSON 风格的 BSON 文档存储数据,常用于海量数据存储和实时分析场景。
1.1 CentOS 7 安装 MongoDB
-
添加 MongoDB 仓库:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo [mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc EOF
-
安装 MongoDB:
sudo yum install -y mongodb-org
-
启动 MongoDB:
sudo systemctl start mongod sudo systemctl enable mongod
1.2 MongoDB 开发使用
-
连接 MongoDB:
mongo
-
创建数据库与集合:
use mydb; db.createCollection("users"); db.users.insert({ name: "Alice", age: 25, email: "alice@example.com" });
-
查询数据:
db.users.find();
-
高级操作:索引与聚合:
- 创建索引:
db.users.createIndex({ email: 1 });
- 聚合操作:
db.users.aggregate([ { $match: { age: { $gt: 20 } } }, { $group: { _id: null, avgAge: { $avg: "$age" } } } ]);
- 创建索引:
2. Redis
Redis 是一种基于内存的键值存储数据库,广泛用于缓存、消息队列等需要高性能的场景。
2.1 CentOS 7 安装 Redis
-
安装 EPEL 仓库:
sudo yum install epel-release -y
-
安装 Redis:
sudo yum install redis -y
-
启动 Redis:
sudo systemctl start redis sudo systemctl enable redis
2.2 Redis 开发使用
-
连接 Redis:
redis-cli
-
基本操作:
SET user:1 "Alice" GET user:1
-
高级操作:集合与发布订阅:
- 集合操作:
SADD myset "item1" "item2" "item3" SMEMBERS myset
- 发布订阅:
SUBSCRIBE mychannel PUBLISH mychannel "Hello, Redis!"
- 集合操作:
连接工具
在 CentOS 7 环境中,安装好 MySQL、PostgreSQL、MongoDB 和 Redis 后,可以使用图形化界面工具和命令行工具连接和管理数据库。以下是常用的数据库连接工具介绍,以及它们在不同操作系统下的安装方式。
1. MySQL
常用连接工具
- MySQL Workbench: 官方提供的图形化管理工具,支持查询、设计和管理 MySQL 数据库。
- DBeaver: 一款跨平台数据库管理工具,支持多种数据库,包括 MySQL。
- HeidiSQL: 轻量级的 MySQL 图形化管理工具。
安装和使用
-
MySQL Workbench:
- Windows 和 macOS 可以直接从 MySQL Workbench 官方网站 下载并安装。
- CentOS 安装:
sudo yum install mysql-workbench
-
DBeaver:
- DBeaver 在 官方页面 提供下载包,支持多平台。
- CentOS 安装:
- 下载 DBeaver 的 RPM 包:
wget https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm
- 安装 DBeaver:
sudo yum install -y ./dbeaver-ce-latest-stable.x86_64.rpm
- 下载 DBeaver 的 RPM 包:
-
HeidiSQL(仅支持 Windows):
- HeidiSQL 官方网站 提供下载,Windows 用户可以直接安装并连接 MySQL。
连接示例
- 打开 MySQL Workbench 或 DBeaver。
- 选择 “New Connection”。
- 输入以下连接信息:
- Host:
localhost
(或远程服务器的 IP 地址) - Port:
3306
- Username:
root
- Password: 你设置的密码
- Database:
mydb
(可选)
- Host:
2. PostgreSQL
常用连接工具
- pgAdmin: 官方提供的图形化管理工具,支持查询、设计和管理 PostgreSQL 数据库。
- DBeaver: 同样支持 PostgreSQL。
安装和使用
-
pgAdmin:
- Windows 和 macOS 用户可以从 pgAdmin 官方网站 下载。
- CentOS 安装:
- 安装 EPEL 仓库:
sudo yum install -y epel-release
- 安装 pgAdmin 4:
sudo yum install -y pgadmin4
- 安装 EPEL 仓库:
-
DBeaver:如上所述,DBeaver 支持 PostgreSQL。
连接示例
- 打开 pgAdmin 或 DBeaver。
- 创建一个新连接,输入以下信息:
- Host:
localhost
(或远程服务器的 IP 地址) - Port:
5432
- Username:
postgres
(或创建的用户) - Password: 对应用户密码
- Database:
mydb
(可选)
- Host:
3. MongoDB
常用连接工具
- MongoDB Compass: MongoDB 官方提供的图形化工具,支持管理和查询 MongoDB 数据。
- Robo 3T: 轻量级的 MongoDB 管理工具。
安装和使用
-
MongoDB Compass:
- 从 MongoDB 官方网站 下载适用于你的系统的 Compass 版本。
- CentOS 安装:
- 下载 MongoDB Compass:
wget https://downloads.mongodb.com/compass/mongodb-compass-1.33.1.x86_64.rpm
- 安装 Compass:
sudo yum install -y ./mongodb-compass-1.33.1.x86_64.rpm
- 下载 MongoDB Compass:
-
Robo 3T:
- 可以从 Robo 3T 官方网站 下载适合平台的版本。
连接示例
- 打开 MongoDB Compass 或 Robo 3T。
- 输入以下连接信息:
- Host:
localhost
- Port:
27017
- Authentication: 使用你设置的用户名和密码(如果启用了身份验证)
- Database:
mydb
(可选)
- Host:
4. Redis
常用连接工具
- RedisInsight: Redis 官方提供的图形化管理工具,支持 Redis 查询和数据管理。
- Another Redis Desktop Manager (RDM): 跨平台的 Redis 管理工具。
安装和使用
-
RedisInsight:
- 从 RedisInsight 官方网站 下载并安装适合平台的版本。
-
Another Redis Desktop Manager (RDM):
- 从 RDM 官方网站 下载适合的平台安装包。
连接示例
- 打开 RedisInsight 或 RDM。
- 新建一个 Redis 连接,输入以下信息:
- Host:
localhost
(或远程 Redis 服务器的 IP 地址) - Port:
6379
- Password: 如果 Redis 设置了密码,请填写,否则留空。
- Host:
总结
- MySQL:可使用 MySQL Workbench、DBeaver、HeidiSQL 等工具。
- PostgreSQL:可使用 pgAdmin、DBeaver 等工具。
- MongoDB:可使用 MongoDB Compass、Robo 3T 等工具。
- Redis:可使用 RedisInsight、RDM 等工具。
这些工具提供了方便的图形界面,帮助开发者可视化管理数据库,执行查询,并进行调试和优化。