马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 夏夏子 于 2026-3-3 11:19 编辑
一般来说我们的容器大部分都需要使用数据库,只是一些比较简单的容器使用的是内置的SQLite,但是如果是比较复杂一点的容器会改成其他数据库的比如 MySQL或PostgreSQL。 今天我们就来了解了解这些数据库。
基础知识
1.SQLite/ MySQL/PostgreSQL 它们都是关系型数据库体系,用于管理数据的存储、查询和权限控制。 - MySQL / PostgreSQL:服务型数据库(需要独立数据库服务)
- SQLite:嵌入式数据库(数据通常存为本地文件)
2.数据库(Database)
- 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。一个数据库里面可以包含多张数据表。
- 一个数据库服务中通常可以创建多个数据库。
- 可类比为 Excel 工作簿。
3.数据表(Table)
- 数据表是数据库中真正存放数据的结构,按“行 + 列”组织。
- 一个数据库里可以有多张表。
- 可类比为 Excel 工作表。
4.常见使用方式 - 通过 SQL 语句 操作(增删改查)
- 通过图形化工具操作,如:Navicat
下面我们就来看看MySQL的部署与使用,如果需要使用PostgreSQL的话可以查看容器数据库入门之PostgreSQL实战。
MySQL
docker安装
- services:
- mysql:
- image: mysql:latest
- container_name: mysql
- restart: always
- ports:
- - 3306:3306
- volumes:
- - ./log:/var/log/mysql # 映射日志目录
- - ./data:/var/lib/mysql # 映射数据目录
- environment:
- - MYSQL_ROOT_PASSWORD=mysql123456 # root用户密码
- - TZ=Asia/Shanghai
复制代码
连接数据库
连接命令:mysql -u 用户名 -p -h 远程主机IP -P 端口号 注意:-p(小写)表示的是密码,-P(大写)表示的是端口
- # 用默认root 用户连接
- mysql -u root -p
- # 连接 192.168.31.15 上端口为13306的 test_db 数据库,用户名 test_user
- mysql -u test_user -p -h 192.168.31.15 -P 13306 -D test_db
复制代码
连接类参数:用于指定连接的用户、主机、端口、密码等核心信息,是使用mysql命令的基础。 短参数 | | | | | | | mysql -u root
mysql --user=root
| | | | 安全写法回车输密码:mysql -u root -p
不推荐密码明文暴露:mysql -u root -p123456
| | | 指定连接的 MySQL 服务器地址(本地默认 127.0.0.1) | 远程连接:mysql -u test -p -h 192.168.1.100 | | | | 连接 3307 端口: mysql -u root -p -P 3307 | | | | 连接后直接进入 test_db 库: mysql -u root -p -D test_db | |
| 指定连接协议(tcp/udp/socket 等) | 强制 TCP 连接: mysql -u root -p --protocol=tcp |
连接成功后的基础操作: - # 查看 MySQL 系统状态(版本、连接数等)
- STATUS;
- \s
- # 查看当前 bind_address 配置,如果只为127.0.0.1表示仅允许本地回环连接,远程主机无法访问
- SHOW VARIABLES LIKE 'bind_address';
- # 查看当前连接的数据库,若返回 NULL,说明未选中任何库,需执行 USE 数据库名 切换
- SELECT DATABASE();
- # 列出所有用户
- SELECT user, host FROM mysql.user;
- # 列出所有数据库
- SHOW DATABASES;
- # 列出当前库的所有表
- SHOW TABLES;
- # 切换数据库
- USE 库名;
- \u 数据库名
- # 查看表结构(字段 / 类型 / 约束)
- DESC 表名;
- DESCRIBE 表名;
- # 退出 MySQL 交互界面
- \q
- exit
- quit
复制代码
|