Featured image of post Windows 数据库实战合集:MySQL/Redis/Elasticsearch/SQLite/Navicat 安装与连接

Windows 数据库实战合集:MySQL/Redis/Elasticsearch/SQLite/Navicat 安装与连接

Windows 11/10 部署常用数据库实战:MySQL 8 离线安装、Redis 5/6、Elasticsearch 8 启动与密码重置、SQLite 解压即用、Navicat 连接 SQL Server

一、为什么要在 Windows 上跑数据库

生产用 Linux——但学习 / 调试 / 离线场景Windows 本地数据库仍是开发机标配:

  • MySQL 8 / Redis 5 —— 本地调试 / 单元测试 / 学习
  • Elasticsearch 8 —— 全文搜索 / 日志分析
  • SQLite —— 嵌入式场景(Python 内置 sqlite3 模块
  • Navicat —— 跨数据库 GUI,连接本机 + 远程

本文避开 Docker(Windows Docker Desktop 重,本地跑裸进程更快),全部用 ZIP / MSI 解压即装的方式

二、MySQL 8.0 安装

2.1 下载 MySQL Installer

  • 官方:https://downloads.mysql.com/archives/installer/
  • 推荐版本:MySQL Installer Community 8.0.28.02022 时代经典

MySQL Installer 是 .msi含 Server + Workbench + Shell + Connector/NET 一站式安装。

2.2 静默安装(推荐)

1
2
3
4
5
# 企业版
msiexec /i mysql-installer-community-8.0.28.0.msi /qn

# 自定义安装路径
msiexec /i mysql-installer-community-8.0.28.0.msi INSTALLDIR="D:\soft\MySQL" /qn

2.3 配置 my.ini

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[mysqld]
basedir=D:/soft/MySQL
datadir=D:/data/MySQL
port=3306
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-authentication-plugin=mysql_native_password

[client]
default-character-set=utf8mb4

2.4 初始化数据目录

1
2
cd D:\soft\MySQL\bin
mysqld --initialize-insecure --user=mysql

--initialize-insecure:root 密码为空(开发机推荐),生产用 --initialize 会生成随机密码到 data\xxx.err

2.5 启动 MySQL

1
2
3
4
5
6
# 命令行启动
D:\soft\MySQL\bin\mysqld --console

# 注册成 Windows 服务
D:\soft\MySQL\bin\mysqld --install MySQL8 --defaults-file="D:\soft\MySQL\my.ini"
net start MySQL8

2.6 修改 root 密码

1
2
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
FLUSH PRIVILEGES;

三、Redis 5.0 安装

3.1 下载

  • tporadowski/redis 维护的 Windows 版 Redis(官方 Windows 版停更
  • 5.0.14.1:https://github.com/tporadowski/redis/releases/download/v5.0.14.1/Redis-x64-5.0.14.1.zip
  • 6.x / 7.x 也都有,2018-2023 持续维护

3.2 解压即用

1
2
3
# 解压到 D:\portable\Redis-x64-5.0.14.1
cd D:\portable\Redis-x64-5.0.14.1
redis-server.exe redis.windows.conf

3.3 客户端连接

1
2
3
4
5
6
7
# 默认 6379 端口
redis-cli.exe -h 127.0.0.1 -p 6379

# 测试
> set myKey abc
> get myKey
"abc"

3.4 注册成 Windows 服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 安装服务
redis-server.exe --service-install redis.windows.conf --loglevel verbose

# 启动服务
redis-server.exe --service-start

# 停止服务
redis-server.exe --service-stop

# 卸载服务
redis-server.exe --service-uninstall

3.5 配置密码

redis.windows.conf

1
requirepass your_redis_password

客户端

1
redis-cli -a your_redis_password

注意:Redis 6+ 才支持 ACL(多用户多权限),5.0 仍是单密码模式

四、Elasticsearch 8.x 安装

4.1 下载

  • 官方:https://www.elastic.co/cn/downloads/elasticsearch
  • 8.2.2 Windows 版:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.2.2-windows-x86_64.zip
  • 历史版本:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

4.2 解压

1
2
# 推荐解压到 D 盘
Expand-Archive elasticsearch-8.2.2-windows-x86_64.zip -DestinationPath D:\portable\

4.3 启动 ES

D:\portable\elasticsearch-8.2.2\config\elasticsearch.yml 末尾加:

1
xpack.ml.enabled: false

关掉 X-Pack ML避免内存溢出(默认开启会占 1G+ 内存)。

启动:

1
D:\portable\elasticsearch-8.2.2\bin\elasticsearch.bat

第一次启动输出:

1
2
3
4
5
6
7
8
-> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.

-> Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  SCzC_tXNopid7eKBVp0n

-> HTTP CA certificate SHA-256 fingerprint:
  74bbe5528b8e1c66539cb8cc8aff1bb624970694e9e55578a7ecbbd6ac60fe1f

SCzC_tXNopid7eKBVp0n 就是 elastic 用户的初始密码——记下来

4.4 改密码

1
D:\portable\elasticsearch-8.2.2\bin\elasticsearch-reset-password -u elastic -i

4.5 访问

1
2
# 默认 https://localhost:9200
curl -k -u elastic:your_password https://localhost:9200/

-k 是忽略 TLS 证书(ES 8 默认开启 TLS)。

4.6 Kibana 配套

  • Kibana 8.2.2:https://artifacts.elastic.co/downloads/kibana/kibana-8.2.2-windows-x86_64.zip
  • 解压到 D:\portable\kibana-8.2.2
  • 启动 bin\kibana.bat
  • 访问 http://localhost:5601

五、SQLite 解压即用

5.1 下载

  • 官方:https://www.sqlite.org/download.html
  • 2022 版:sqlite-dll-win64-x64-3380500.zip + sqlite-tools-win32-x86-3380500.zip

5.2 部署

1
2
3
4
# 解压到 D:\portable\sqlite3
md D:\portable\sqlite3
Expand-Archive sqlite-dll-win64-x64-3380500.zip -DestinationPath D:\portable\sqlite3
Expand-Archive sqlite-tools-win32-x86-3380500.zip -DestinationPath D:\portable\sqlite3

5.3 配置环境变量

1
PATH += D:\portable\sqlite3

5.4 启动

1
Win+R  wt  sqlite3

输出:

1
2
3
4
5
SQLite version 3.38.5 2022-05-06 15:25:27
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

5.5 常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
-- 打开数据库文件
.open mydata.db

-- 列出所有表
.tables

-- 显示表结构
.schema users

-- 退出
.exit

-- .help 看所有元命令
.help

5.6 Python 内置

1
2
3
4
5
6
7
8
import sqlite3

conn = sqlite3.connect('mydata.db')
cur = conn.cursor()
cur.execute('SELECT * FROM users LIMIT 5')
for row in cur.fetchall():
    print(row)
conn.close()

六、Navicat 连接 SQL Server

6.1 安装 SQL Server Native Client 2012

Navicat 早期版本连接 SQL Server 需要 Microsoft® SQL Server® 2012 Native Client

  • 下载:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=50402
  • Navicat 16+ 已经自带驱动

6.2 新建连接

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
1. 打开 Navicat
2. "连接" → 选 "SQL Server"
3. 主机: localhost / 192.168.x.x / <HOST>,1433
4. 验证: SQL Server 验证
5. 用户名: sa
6. 密码: ********
7. 数据库: 选 <默认> / 指定
8. 高级 → 排序规则: Chinese_PRC_CI_AS
9. 高级 → 恢复模式: SIMPLE
10. 高级 → 兼容级别: 100(SQL Server 2008 兼容)
11. 测试连接

6.3 关键参数说明

参数含义推荐值
排序规则字符集 / 排序规则Chinese_PRC_CI_AS(中文不区分大小写)
恢复模式FULL / SIMPLE / BULK_LOGGEDSIMPLE(开发机省空间)
兼容级别模拟老 SQL Server 版本100(2008)/ 110(2012)/ 130(2016)
加密是否 TLSForce Encryption = False(开发机省事)

七、跨数据库 GUI 工具对比

工具出品方跨数据库价格推荐度
Navicat Premium卓码(香港)MySQL/MSSQL/Oracle/PostgreSQL/SQLite/MongoDB/Redis商业付费老牌经典
DBeaver Community社区几乎所有数据库免费开源2020+ 主流
DataGripJetBrains几乎所有数据库商业付费IDE 体验
HeidiSQL德国开发者MySQL/MSSQL/PostgreSQL免费开源MySQL 经典
TablePlus独立开发者MySQL/PostgreSQL/SQLite/Redis/MongoDB商业付费(Mac/Win)Mac 设计感
Apifox国产API 设计 + Mock + 调试 + 文档个人版免费2020+ 新派

建议

  • 白嫖 → DBeaver Community
  • 重度 MySQL → Navicat Premium
  • IDE 用户 → DataGrip
  • Mac 用户 → TablePlus

八、Windows 防火墙与端口

数据库本地跑没问题,但远程连接要开防火墙

8.1 放行 MySQL 3306

1
New-NetFirewallRule -DisplayName "MySQL 3306" -Direction Inbound -LocalPort 3306 -Protocol TCP -Action Allow

8.2 放行 Redis 6379

1
New-NetFirewallRule -DisplayName "Redis 6379" -Direction Inbound -LocalPort 6379 -Protocol TCP -Action Allow

8.3 放行 Elasticsearch 9200

1
New-NetFirewallRule -DisplayName "ES 9200" -Direction Inbound -LocalPort 9200 -Protocol TCP -Action Allow

生产环境不要直接把数据库端口暴露公网——走 SSH 隧道或 VPN。

九、性能调优

9.1 MySQL

  • 配置 innodb_buffer_pool_size = 物理内存的 50-70%
  • 启用慢查询日志slow_query_log = 1long_query_time = 2
  • 使用 EXPLAIN 分析慢 SQL

9.2 Redis

  • 最大内存maxmemory 2gb
  • 淘汰策略maxmemory-policy allkeys-lru通用 LRU
  • 持久化:开发机关 RDB / AOF,生产开 AOF

9.3 Elasticsearch

  • Xms / Xmx JVM 堆内存:建议设成一样大
  • 堆内存 ≤ 物理内存的 50%留 50% 给 OS 文件缓存
  • 避免大文档 + 避免深度分页

十、常见 5 个坑

  1. MySQL 8 默认 caching_sha2_password——老客户端连不上,mysql_native_password
  2. Redis Windows 5.0 默认无密码——生产必设 requirepass
  3. Elasticsearch 8 默认开 TLS + 强制密码——第一次启动会输出初始密码记不住就 elasticsearch-reset-password
  4. SQLite 数据库文件并发写会锁——多写场景不要用 SQLite
  5. Navicat 12 之前的版本连 SQL Server 2016+ 报错——升级到 Navicat 16+

十一、总结

  • MySQL 8 —— mysqld --initialize-insecure 初始化 + mysqld --install 注册服务
  • Redis 5/6 —— tporadowski 维护版解压即用,生产必设密码
  • Elasticsearch 8 —— 8.x 默认开 TLS,第一次启动的 elastic 密码要记
  • SQLite —— Python 内置,开发机首选
  • Navicat —— 跨数据库 GUI,经典老牌白嫖首选 DBeaver
  • 生产环境数据库别直接暴露公网——走 SSH 隧道 / VPN

参考资料

使用 Hugo 构建
主题 StackJimmy 设计