返回列表 发布新帖

[玩法教程] 容器数据库入门之MySQL实战

961 8
发表于 2026-3-3 11:05:38 | 查看全部 阅读模式 IP:–广东–佛山–高明区

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 夏夏子 于 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
Navicat Premium Lite 是 Navicat 的精简版,最多可使用5个Navicat Premium Lite免费用户账户,对于没有太高需求的用户来说可以使用它。

下面我们就来看看MySQL的部署与使用,如果需要使用PostgreSQL的话可以查看容器数据库入门之PostgreSQL实战

MySQL

docker安装
  1. services:
  2.   mysql:
  3.     image: mysql:latest
  4.     container_name: mysql
  5.     restart: always
  6.     ports:
  7.       - 3306:3306
  8.     volumes:
  9.       - ./log:/var/log/mysql            # 映射日志目录
  10.       - ./data:/var/lib/mysql           # 映射数据目录
  11.     environment:
  12.       - MYSQL_ROOT_PASSWORD=mysql123456  # root用户密码
  13.       - TZ=Asia/Shanghai
复制代码

连接数据库

连接命令:mysql -u 用户名 -p -h 远程主机IP -P 端口号
注意:-p(小写)表示的是密码,-P(大写)表示的是端口
  1. # 用默认root 用户连接
  2. mysql -u root -p

  3. # 连接 192.168.31.15 上端口为13306的 test_db 数据库,用户名 test_user
  4. mysql -u test_user -p -h 192.168.31.15 -P 13306 -D test_db
复制代码

连接类参数:用于指定连接的用户、主机、端口、密码等核心信息,是使用mysql命令的基础。
短参数
长参数
说明
示例
-u
--user=用户名
指定连接MySQL的用户名
mysql -u root

mysql --user=root

-p
--password[=密码]
指定密码(推荐不加密码,回车后输入更安全)
安全写法回车输密码:mysql -u root -p

不推荐密码明文暴露:mysql -u root -p123456

-h
--host=主机IP
指定连接的 MySQL 服务器地址(本地默认 127.0.0.1)
远程连接:mysql -u test -p -h 192.168.1.100
-P
--port=端口号
指定 MySQL 服务的端口(默认3306)
连接 3307 端口: mysql -u root -p -P 3307
-D
--database=库名
连接后直接切换到指定数据库(无需再执行USE)
连接后直接进入 test_db 库: mysql -u root -p -D test_db
--protocol=协议

指定连接协议(tcp/udp/socket 等)
强制 TCP 连接: mysql -u root -p --protocol=tcp

连接成功后的基础操作
  1. # 查看 MySQL 系统状态(版本、连接数等)
  2. STATUS;
  3. \s

  4. # 查看当前 bind_address 配置,如果只为127.0.0.1表示仅允许本地回环连接,远程主机无法访问
  5. SHOW VARIABLES LIKE 'bind_address';


  6. # 查看当前连接的数据库,若返回 NULL,说明未选中任何库,需执行 USE 数据库名 切换
  7. SELECT DATABASE();


  8. # 列出所有用户
  9. SELECT user, host FROM mysql.user;

  10. # 列出所有数据库
  11. SHOW DATABASES;


  12. # 列出当前库的所有表
  13. SHOW TABLES;

  14. # 切换数据库
  15. USE 库名;
  16. \u 数据库名

  17. # 查看表结构(字段 / 类型 / 约束)
  18. DESC 表名;
  19. DESCRIBE 表名;

  20. # 退出 MySQL 交互界面
  21. \q
  22. exit
  23. quit
复制代码

mysql-01.png



评论8

梦梦Lv.7绿联NAS社区会员用户 发表于 2026-3-3 16:04:01 来自手机 | 查看全部 IP:–广东–佛山–高明区
这才是大佬!膜拜
dTRZLYLv.1 发表于 2026-3-6 08:59:33 | 查看全部 IP:–广西–南宁
梦梦 发表于 2026-3-3 16:04
这才是大佬!膜拜

这......大学没学过?还是上学的时候逃课去网吧打游戏了?
梦梦Lv.7绿联NAS社区会员用户 发表于 2026-3-7 15:02:41 来自手机 | 查看全部 IP:–河北–衡水
牛哇牛蛙
冰心Lv.1 发表于 2026-3-18 11:30:16 | 查看全部 IP:–河北–衡水
创建gitea数据库命令:
CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
创建gitea1用户命令:
CREATE USER 'gitea1'@'%' IDENTIFIED BY '这里换成你的密码';
授予gitea1用户gitea数据库权限命令:
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea1'@'%';
晓晓Lv.2绿联NAS社区会员用户 发表于 2026-3-25 14:12:01 来自手机 | 查看全部 IP:美国 CloudFlare节点
dTRZLY 发表于 2026-3-6 08:59
这......大学没学过?还是上学的时候逃课去网吧打游戏了?

哈哈哈😂
jiumianLv.1 发表于 2026-3-27 09:58:36 | 查看全部 IP:–四川–绵阳
太强了 看的茅塞顿开
攀德Lv.1 发表于 2026-5-8 00:07:43 | 查看全部 IP:–福建–福州
我一个搞园林预结算的现在看这个学习数据库,真的有点高估自己啊。
夏夏子楼主Lv.7绿联NAS社区会员用户 发表于 2026-5-8 08:52:10 | 查看全部 IP:–湖南
Mw1mFU 发表于 2026-5-8 00:07
我一个搞园林预结算的现在看这个学习数据库,真的有点高估自己啊。

这不是刚刚好嘛

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表