文章目录
- 安装Redis
-
- 一、通过APT包管理器安装(推荐)
-
- [1. 更新软件包列表](#1. 更新软件包列表)
- [2. 安装Redis](#2. 安装Redis)
- [3. 验证安装](#3. 验证安装)
- [4. 测试Redis连接](#4. 测试Redis连接)
- 二、编译源码安装(最新版本)
-
- [1. 安装依赖](#1. 安装依赖)
- [2. 下载Redis源码](#2. 下载Redis源码)
- [3. 解压并编译](#3. 解压并编译)
- [4. 安装Redis](#4. 安装Redis)
- [5. 配置Redis为系统服务](#5. 配置Redis为系统服务)
- 三、Redis基础配置(可选)
- 四、卸载Redis(如需)
- 五、详细配置
-
- 一、网络配置
-
- [1. 绑定IP(bind)](#1. 绑定IP(bind))
- [2. 保护模式(protected-mode)](#2. 保护模式(protected-mode))
- [3. 端口(port)](#3. 端口(port))
- [4. 超时时间(timeout)](#4. 超时时间(timeout))
- 二、安全配置
-
- [1. 设置访问密码(requirepass)](#1. 设置访问密码(requirepass))
- [2. 命令重命名(rename-command)](#2. 命令重命名(rename-command))
- 三、持久化配置
-
- [1. RDB持久化(默认开启)](#1. RDB持久化(默认开启))
- [2. AOF持久化(默认关闭)](#2. AOF持久化(默认关闭))
- 四、内存管理配置
-
- [1. 最大内存限制(maxmemory)](#1. 最大内存限制(maxmemory))
- [2. 内存淘汰策略(maxmemory-policy)](#2. 内存淘汰策略(maxmemory-policy))
- 五、日志配置
-
- [1. 日志级别(loglevel)](#1. 日志级别(loglevel))
- [2. 日志文件(logfile)](#2. 日志文件(logfile))
- 六、其他常用配置
-
- [1. 数据库数量(databases)](#1. 数据库数量(databases))
- [2. 客户端连接数限制(maxclients)](#2. 客户端连接数限制(maxclients))
- [3. 后台运行(daemonize)](#3. 后台运行(daemonize))
- 配置生效方法
- 生产环境配置建议
- 安装mysql
- 配置mysql开发
-
-
- [1. MySQL 客户端开发库](#1. MySQL 客户端开发库)
- [2. MySQL 客户端(可选)](#2. MySQL 客户端(可选))
- [3. C++ 编译工具链](#3. C++ 编译工具链)
- [4. 验证安装](#4. 验证安装)
- [编译 C++ 程序时的链接参数](#编译 C++ 程序时的链接参数)
- 注意事项
-
- Mysql命令
-
-
- 一、通用SQL命令(适用于多数关系型数据库)
-
- [1. 数据库操作](#1. 数据库操作)
- [2. 表操作](#2. 表操作)
- [3. 数据操作(CRUD)](#3. 数据操作(CRUD))
- [4. 索引操作](#4. 索引操作)
- [二、MySQL 特有命令](#二、MySQL 特有命令)
- [三、PostgreSQL 特有命令](#三、PostgreSQL 特有命令)
- [四、SQL Server 特有命令](#四、SQL Server 特有命令)
- [五、Oracle 特有命令](#五、Oracle 特有命令)
- 六、常用辅助命令
-
安装Redis
一、通过APT包管理器安装(推荐)
1. 更新软件包列表
首先确保系统包列表是最新的:
bash
sudo apt update
2. 安装Redis
直接安装Redis服务器和客户端:
bash
sudo apt install redis-server
3. 验证安装
安装完成后,Redis会自动启动,可通过以下命令检查状态:
bash
sudo systemctl status redis-server
如果显示 active (running),说明Redis已成功运行。
4. 测试Redis连接
使用Redis客户端连接本地服务:
bash
redis-cli
输入 ping,若返回 PONG,表示连接正常。
二、编译源码安装(最新版本)
若需要安装最新版本的Redis(APT仓库版本可能较旧),可通过源码编译:
1. 安装依赖
bash
sudo apt update
sudo apt install build-essential tcl
2. 下载Redis源码
从Redis官网下载最新稳定版(以7.2.3为例,可替换为最新版本号):
bash
cd /tmp
curl -O http://download.redis.io/releases/redis-7.2.3.tar.gz
3. 解压并编译
bash
tar xzf redis-7.2.3.tar.gz
cd redis-7.2.3
make
编译完成后,执行测试(可选):
bash
make test
4. 安装Redis
bash
sudo make install
5. 配置Redis为系统服务
Redis源码包提供了系统服务配置文件,复制并配置:
bash
sudo cp utils/systemd-redis_server.service /etc/systemd/system/redis-server.service
sudo systemctl daemon-reload
sudo systemctl start redis-server
sudo systemctl enable redis-server # 设置开机自启
三、Redis基础配置(可选)
Redis默认配置文件路径:
- APT安装:
/etc/redis/redis.conf - 源码安装:
/usr/local/etc/redis.conf(或需手动复制配置文件)
常用配置修改:
- 绑定IP :默认绑定
127.0.0.1(仅本地访问),若需远程访问,注释bind 127.0.0.1 ::1,并设置protected-mode no(生产环境需配合密码)。 - 设置密码 :添加
requirepass yourpassword(替换为自定义密码)。 - 持久化 :默认开启RDB持久化,可根据需求开启AOF(
appendonly yes)。
修改配置后重启Redis:
bash
sudo systemctl restart redis-server
四、卸载Redis(如需)
bash
# APT安装卸载
sudo apt remove --purge redis-server
sudo rm -rf /var/lib/redis /etc/redis
# 源码安装卸载
sudo rm -rf /usr/local/bin/redis-*
sudo rm -rf /etc/systemd/system/redis-server.service
sudo systemctl daemon-reload
五、详细配置
Redis 的基础配置主要围绕核心功能、网络访问、持久化、内存管理等维度展开,配置文件默认路径:
- APT安装:
/etc/redis/redis.conf - 源码安装:
/usr/local/etc/redis.conf(或需手动复制redis.conf模板)
以下是关键配置项的详细说明和常用设置:
一、网络配置
1. 绑定IP(bind)
控制Redis监听的网卡地址,默认仅允许本地访问:
conf
# 默认:bind 127.0.0.1 ::1 (仅本地)
bind 0.0.0.0 # 允许所有IP访问(生产环境需谨慎,配合密码/防火墙)
2. 保护模式(protected-mode)
默认开启,仅允许本地连接;若需远程访问,需关闭:
conf
protected-mode no # 关闭保护模式(需配合密码)
3. 端口(port)
默认监听6379端口:
conf
port 6379 # 可自定义端口(如6380)
4. 超时时间(timeout)
客户端闲置多久后关闭连接(秒),0表示永不关闭:
conf
timeout 0
二、安全配置
1. 设置访问密码(requirepass)
强制客户端连接后验证密码(生产环境必配):
conf
requirepass your_strong_password # 替换为强密码(如:Redis@123!)
2. 命令重命名(rename-command)
重命名高危命令(如 CONFIG、FLUSHDB),防止误操作或攻击:
conf
rename-command CONFIG "" # 禁用CONFIG命令(""表示禁用)
rename-command FLUSHDB "safe_flushdb" # 重命名为safe_flushdb
三、持久化配置
Redis支持两种持久化方式:RDB(快照)和AOF(日志)。
1. RDB持久化(默认开启)
在指定时间间隔内,执行指定次数写操作后,自动生成数据快照(.rdb文件):
conf
# 格式:save <秒> <修改次数>
save 900 1 # 900秒内至少1次修改,触发快照
save 300 10 # 300秒内至少10次修改,触发快照
save 60 10000 # 60秒内至少10000次修改,触发快照
# 禁用RDB:注释所有save行,或添加 save ""
# save ""
rdbcompression yes # 压缩RDB文件(默认开启)
dbfilename dump.rdb # RDB文件名
dir /var/lib/redis # RDB文件存储路径(APT安装默认路径)
2. AOF持久化(默认关闭)
记录所有写操作日志,重启时重放日志恢复数据(更可靠):
conf
appendonly yes # 开启AOF持久化
appendfilename "appendonly.aof" # AOF文件名
appendfsync everysec # AOF同步策略:
# - always:每次写操作立即同步(最安全,性能差)
# - everysec:每秒同步(折中,推荐)
# - no:由操作系统决定(性能好,安全性差)
auto-aof-rewrite-percentage 100 # AOF文件大小增长100%时,自动重写
auto-aof-rewrite-min-size 64mb # AOF文件最小64MB时,触发重写
四、内存管理配置
1. 最大内存限制(maxmemory)
设置Redis可用的最大内存(生产环境必配,防止内存溢出):
conf
maxmemory 1gb # 限制最大内存为1GB(根据服务器配置调整,如4gb/8gb)
2. 内存淘汰策略(maxmemory-policy)
当内存达到maxmemory时,Redis选择淘汰数据的策略:
conf
# 常用策略:
maxmemory-policy allkeys-lru # 淘汰最少使用的键(推荐)
# 其他策略:
# volatile-lru:淘汰带过期时间的最少使用键
# allkeys-random:随机淘汰键
# volatile-ttl:淘汰即将过期的键
# noeviction:不淘汰,返回错误(默认)
五、日志配置
1. 日志级别(loglevel)
控制日志详细程度:
conf
loglevel notice # 可选:debug/verbose/notice/warning(生产环境用notice/warning)
2. 日志文件(logfile)
指定日志输出路径,默认输出到控制台:
conf
logfile /var/log/redis/redis-server.log # 日志文件路径(APT安装默认路径)
六、其他常用配置
1. 数据库数量(databases)
默认16个数据库(通过SELECT 0-15切换):
conf
databases 16
2. 客户端连接数限制(maxclients)
最大客户端连接数:
conf
maxclients 10000 # 默认10000,根据服务器性能调整
3. 后台运行(daemonize)
默认开启(APT安装),Redis以守护进程运行:
conf
daemonize yes # yes:后台运行;no:前台运行(调试用)
配置生效方法
修改配置后,需重启Redis服务:
bash
sudo systemctl restart redis-server
也可通过redis-cli动态修改配置(无需重启,重启后失效):
bash
redis-cli
127.0.0.1:6379> CONFIG SET requirepass "new_password" # 动态设置密码
127.0.0.1:6379> CONFIG REWRITE # 将动态配置写入配置文件(持久化)
生产环境配置建议
- 开启密码验证,禁用高危命令;
- 限制IP访问(配合防火墙/
bind); - 开启AOF持久化(或RDB+AOF混合);
- 设置合理的内存限制和淘汰策略;
- 定期备份RDB/AOF文件。
安装mysql
在Ubuntu系统中安装MySQL可以通过官方APT仓库或系统默认仓库进行,以下是详细步骤:
一、通过Ubuntu默认仓库安装(适合快速部署)
-
更新软件包索引
bashsudo apt update -
安装MySQL服务器
bashsudo apt install mysql-server -y -
验证安装
安装完成后,MySQL服务会自动启动,可通过以下命令检查状态:
bashsudo systemctl status mysql若显示
active (running)则表示运行正常。
二、通过官方APT仓库安装(推荐,获取最新稳定版)
-
安装依赖包
bashsudo apt install wget gnupg2 -y -
添加MySQL官方GPG密钥
bashwget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb安装过程中会弹出配置界面,选择MySQL版本(如8.0)和Ubuntu版本,确认后保存。
-
更新软件包索引
bashsudo apt update -
安装MySQL服务器
bashsudo apt install mysql-server -y安装时会提示设置root密码,按提示操作即可。
三、初始化配置(重要)
-
运行安全脚本
MySQL提供了安全配置脚本,可设置密码策略、移除匿名用户等:
bashsudo mysql_secure_installation按提示依次操作:
- 设置密码强度(0=低,1=中,2=高)
- 更改root密码(若未设置)
- 移除匿名用户
- 禁止root远程登录
- 删除test数据库
- 刷新权限
-
登录MySQL
-
Ubuntu默认使用auth_socket插件认证root用户,需通过sudo登录:
bashsudo mysql -
若需密码登录,可修改root认证方式:
sqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES; exit;之后即可用密码登录:
bashmysql -u root -p
-
四、远程访问配置(可选)
-
修改绑定地址
编辑MySQL配置文件:
bashsudo nano /etc/mysql/mysql.conf.d/mysqld.cnf将
bind-address = 127.0.0.1改为0.0.0.0(允许所有IP访问),保存并退出。 -
授权远程访问用户
sqlCREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; -
重启MySQL服务
bashsudo systemctl restart mysql
五、常用命令
- 启动服务:
sudo systemctl start mysql - 停止服务:
sudo systemctl stop mysql - 重启服务:
sudo systemctl restart mysql - 设置开机自启:
sudo systemctl enable mysql
安装完成后,即可开始使用MySQL数据库。如需图形化管理工具,可安装phpMyAdmin或MySQL Workbench。
配置mysql开发
在 Ubuntu 系统上使用 C++ 连接 MySQL,需要安装 MySQL 的客户端开发库以及相关依赖。以下是具体需要下载和安装的包:
1. MySQL 客户端开发库
核心依赖是 libmysqlclient-dev,它包含了编译和链接 MySQL 程序所需的头文件(如 mysql.h)和库文件(libmysqlclient.so)。
安装命令:
bash
sudo apt update
sudo apt install libmysqlclient-dev
2. MySQL 客户端(可选)
如果需要测试连接或手动操作 MySQL,可安装 mysql-client:
bash
sudo apt install mysql-client
3. C++ 编译工具链
确保系统已安装 C++ 编译器(如 g++)和构建工具(make):
bash
sudo apt install g++ make
4. 验证安装
安装完成后,可通过以下命令检查头文件和库文件是否存在:
bash
# 检查头文件
ls /usr/include/mysql/mysql.h
# 检查库文件
ls /usr/lib/x86_64-linux-gnu/libmysqlclient.so
编译 C++ 程序时的链接参数
编译连接 MySQL 的 C++ 程序时,需要指定链接 MySQL 库,例如:
bash
g++ your_program.cpp -o your_program -lmysqlclient
注意事项
-
如果使用 MySQL 8.0+,
libmysqlclient-dev可能被libmysqlclient-dev(MySQL 官方源)或libmariadb-dev(MariaDB 兼容库)替代,根据需求选择。 -
若遇到依赖问题,可添加 MySQL 官方源后再安装:
bashwget 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 sudo apt update
安装完成后,即可在 C++ 代码中通过 MySQL C API 连接和操作数据库。
Mysql命令
数据库的命令因不同数据库系统(如MySQL、PostgreSQL、Oracle、SQL Server等)略有差异,但核心的SQL命令和常用操作有共通性。以下是主流数据库的常见命令分类整理:
一、通用SQL命令(适用于多数关系型数据库)
1. 数据库操作
sql
-- 创建数据库
CREATE DATABASE 数据库名;
-- 删除数据库
DROP DATABASE 数据库名;
-- 使用数据库(MySQL/SQL Server)
USE 数据库名;
-- 查看所有数据库
SHOW DATABASES; -- MySQL
SELECT datname FROM pg_database; -- PostgreSQL
SELECT name FROM sys.databases; -- SQL Server
2. 表操作
sql
-- 创建表
CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
);
-- 示例:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 0
);
-- 删除表
DROP TABLE 表名;
-- 修改表(添加列)
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;
-- 修改表(修改列类型)
ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型; -- SQL Server
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型; -- MySQL
-- 查看表结构
DESC 表名; -- MySQL
\d 表名; -- PostgreSQL
sp_help 表名; -- SQL Server
3. 数据操作(CRUD)
sql
-- 插入数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
-- 查询数据
SELECT 列1, 列2 FROM 表名 WHERE 条件;
SELECT * FROM 表名 LIMIT 10; -- 限制结果行数(MySQL/PostgreSQL)
-- 更新数据
UPDATE 表名 SET 列1=值1 WHERE 条件;
-- 删除数据
DELETE FROM 表名 WHERE 条件;
4. 索引操作
sql
-- 创建索引
CREATE INDEX 索引名 ON 表名(列名);
-- 删除索引
DROP INDEX 索引名 ON 表名;
二、MySQL 特有命令
sql
-- 登录MySQL
mysql -u 用户名 -p
-- 查看当前用户
SELECT USER();
-- 查看表的创建语句
SHOW CREATE TABLE 表名;
-- 导入SQL文件
SOURCE /路径/文件名.sql;
-- 导出数据库
mysqldump -u 用户名 -p 数据库名 > 导出文件名.sql;
三、PostgreSQL 特有命令
sql
-- 登录PostgreSQL
psql -U 用户名 -d 数据库名
-- 查看所有表
\dt
-- 导入SQL文件
\i /路径/文件名.sql;
-- 导出数据库
pg_dump -U 用户名 -d 数据库名 > 导出文件名.sql;
四、SQL Server 特有命令
sql
-- 登录SQL Server(cmd)
sqlcmd -S 服务器名 -U 用户名 -P 密码
-- 查看所有表
SELECT * FROM sys.tables;
-- 备份数据库
BACKUP DATABASE 数据库名 TO DISK = '路径\备份文件.bak';
五、Oracle 特有命令
sql
-- 登录Oracle
sqlplus 用户名/密码@数据库实例
-- 查看所有表
SELECT table_name FROM user_tables;
-- 创建表空间
CREATE TABLESPACE 表空间名 DATAFILE '路径\文件.dbf' SIZE 100M;
六、常用辅助命令
sql
-- 事务控制
BEGIN TRANSACTION; -- 开始事务
COMMIT; -- 提交事务
ROLLBACK; -- 回滚事务
-- 权限管理
GRANT 权限 ON 表名 TO 用户名; -- 授权
REVOKE 权限 ON 表名 FROM 用户名; -- 撤销权限
-- 查看版本
SELECT VERSION(); -- MySQL
SELECT version(); -- PostgreSQL
SELECT @@VERSION; -- SQL Server
不同数据库的语法细节可能略有差异(如自增字段、分页语法等),但上述命令是最通用和高频的操作。如果需要特定数据库的深入命令,可以进一步补充说明。