夏夏子的博客 夏夏子的博客
首页
  • 影视
  • 影视工具
  • 常用工具
  • AI工具
  • 其它
电脑技巧
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
首页
  • 影视
  • 影视工具
  • 常用工具
  • AI工具
  • 其它
电脑技巧
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 影视

  • 影视工具

  • 常用工具

    • vaultwarden密码管理器
    • dockercopilot容器管理
    • 青龙面板
    • qiandao框架
    • navnetic导航页
    • webssh
    • easyimage图床
    • DDNS-GO
    • NPM
    • lucky
    • 微信代理
    • 端口查看
    • rustdesk
    • 数据库
      • mysql数据库
        • 连接数据库
      • pgsql数据库
        • psql
        • 连接数据库
        • 创建数据库用户
        • 创建数据库
        • 数据导出
        • 数据导入
      • redis缓存
  • AI工具

  • 其它

  • NAS玩法
  • 常用工具
夏夏子
2026-01-26
目录

数据库

# mysql数据库

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            # 设置容器时区,也可以挂载通过/etc/localtime:/etc/localtime:ro
1
2
3
4
5
6
7
8
9
10
11
12
13

# 连接数据库

连接命令: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

1
2
3
4
5
6

连接类参数:用于指定连接的用户、主机、端口、密码等核心信息,是使用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

连接成功后的基础操作:

# 查看 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

img

# pgsql数据库

services:
  pgsql:
    image: postgres:17-alpine 
    container_name: pgsql
    restart: unless-stopped
    network_mode: bridge
    ports:
      - 5432:5432
    volumes:
        - ./data:/var/lib/postgresql/data
    environment:
        POSTGRES_USER: postgres  # 默认管理员用户
        POSTGRES_PASSWORD: postgres1234 # 默认管理员用户密码
        POSTGRESQL_WAL_COMPRESSION: lz4  # WAL 日志的压缩方式设置为 lz4
        POSTGRESQL_MAX_CONNECTIONS: 2048   # 数据库允许的最大连接数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# psql

psql 是 PostgreSQL(PG)官方自带的命令行交互式客户端工具。

常见参数:

参数 全称 作用
-U <用户名> User 指定连接 PG 的用户名(默认系统当前用户名)
-h <地址> Host 指定 PG 服务器地址(默认 127.0.0.1)
-p <端口> Port 指定 PG 端口(默认 5432)
-d <库名> Database 指定要连接的数据库名,不指定会默认尝试连接和「当前登录用户名同名」的数据库
-c Command 非交互执行指定 SQL 语句,执行后立即退出(适合脚本)
-f <文件> File 执行指定 SQL 文件中的所有语句(常用于导入备份、执行脚本)
-V Version 查看 psql 版本

# 连接数据库

连接命令:psql -U 用户名 -h 地址 -p 端口 -d 数据库名

# 用默认 postgres 用户连接默认 postgres 数据库
psql -U postgres

# 连接 192.168.31.15 上端口为15432的 newapi 数据库,用户名 postgres
psql -U postgres -h 192.168.31.15 -p 15432 -d newapi
1
2
3
4
5

连接成功后的基础操作:

# 查看当前连接的数据库
SELECT current_database();


# 列出所有用户
\du
SELECT usename FROM pg_user;

# 列出所有数据库
\l
SELECT datname FROM pg_database;


# 列出当前库的所有表
\dt
SELECT tablename FROM pg_tables;

# 切换数据库
\c 数据库名

# 查看表结构(字段 / 类型 / 约束)
\d 表名	

# 退出 psql 交互界面
\q
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

img

# 创建数据库用户

# 创建名为 testdbuser 的数据库用户,并设置密码为 test888。
psql -U postgres -c "create user testdbuser with login password 'test888';"
1
2

# 创建数据库

创建名为 testdb、所有者为 testdbuser 的数据库。

# 用sql语句
create database testdb owner testdbuser;

# 用 createdb:-O 指定所有者,testdb 是数据库名,-U 指定执行创建的管理员账号
createdb -U postgres -h 192.168.1.100 -p 5432 -O testdbuser testdb
1
2
3
4
5

注意:createdb 只能创建数据库,无法创建用户,所以用户仍需通过 psql 执行 SQL 语句创建。

# 数据导出

pg_dump:PostgreSQL 自带的备份工具,专门用来导出数据库的结构/数据。最小有效命令:pg_dump -U 用户名 -d 数据库名 -f 备份文件路径

# 导出所有数据库结构 + 数据
pg_dump -U postgres -d 库名 -f xxxx.sql

# 只导出数据
pg_dump -U postgres -d 库名 --data-only -f xxxx.sql
1
2
3
4
5
参数 作用
-U 指定数据库用户名
-d 指定数据库名,必填
-f 指定导出文件名
-h 指定数据库服务器地址(默认本地 127.0.0.1)
-p 指定数据库端口(默认 5432),端口修改过必用
-t 表名。只导出指定单张表的结构 + 数据,避免全库导出)
-n 模式名。导出指定 Schema(PG 的逻辑分组,默认 public)的内容
-c 导出的 SQL 中添加「先删除表 / 数据」的语句(导入时自动清理旧数据)
-C 导出的 SQL 中添加「创建数据库」的语句(导入时无需提前建库)
-F c 导出为二进制格式(比 SQL 小、导入更快,后缀建议 .dump)
--data-only 只导出数据(不含结构)
--schema-only 只导出表结构(不含数据)

# 数据导入

注意:

  1. 只有用 pg_dump -F c/-F t/-F d 导出的备份,才能用 pg_restore 恢复;纯 SQL 文件只能用 psql 导入;
  • pg_restore是PostgreSQL 自带的恢复工具,专门用于恢复由 pg_dump 以「非纯文本格式」(如自定义格式、tar 格式、目录格式)导出的备份文件。
  1. 导入前需确保目标数据库已创建(比如 testdb 需先执行 psql -U admin -c "CREATE DATABASE testdb;");
# SQL 文件
psql -U admin -h 127.0.0.1 -p 5432 -d testdb -f /tmp/testdb_full.sql

# 导入二进制备份文件
pg_restore -U admin -d testdb -v /tmp/testdb.dump

1
2
3
4
5
6

# redis缓存

services:
    redis:
        image: redis:latest
        container_name: redis
        restart: always
        ports:
            - 6379:6379
        volumes:
            - ./data:/data
1
2
3
4
5
6
7
8
9
上次更新: 2026/01/29, 14:01:53
rustdesk
newapi

← rustdesk newapi→

最近更新
01
webdav
02-01
02
free-api系列
01-29
03
one-api
01-29
更多文章>
Theme by Vdoing | Copyright © 2025-2026 夏夏子 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式