5.5 KiB
5.5 KiB
MySQL 容器部署文档
环境信息
- MySQL镜像:docker.unsee.tech/mysql:latest
- 端口映射:3316:3306
- Root密码:zaq12wsx@9Xin
部署步骤
1. 拉取镜像
docker pull docker.unsee.tech/mysql:latest
2. 运行容器
docker run -d \
--name mysql-server \
-p 3316:3306 \
-e MYSQL_ROOT_PASSWORD=zaq12wsx@9Xin \
docker.unsee.tech/mysql:latest
3. 验证部署
# 检查容器状态
docker ps | grep mysql-server
# 测试连接
mysql -h 127.0.0.1 -P 3316 -u root -p
# 输入密码: zaq12wsx@9Xin
数据库初始化
1. 方式一:使用命令行直接初始化
# 进入MySQL容器的交互式终端
docker exec -it mysql-server mysql -uroot -p"zaq12wsx@9Xin"
-- 在MySQL终端中执行以下命令
CREATE DATABASE 9Xin;
USE 9Xin;
-- 创建小红书笔记表
CREATE TABLE xhs_notes (
id INT AUTO_INCREMENT PRIMARY KEY,
note_id VARCHAR(255) NOT NULL,
title VARCHAR(255),
description TEXT,
type ENUM('normal', 'other') NOT NULL
);
-- 创建向量存储表
CREATE TABLE vector_store (
id INT AUTO_INCREMENT PRIMARY KEY,
note_id INT NOT NULL,
vector_id VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
content_hash VARCHAR(64) NOT NULL,
FOREIGN KEY (note_id) REFERENCES xhs_notes(id)
);
-- 创建清洗后的笔记存储表
CREATE TABLE clean_note_store (
id INT NOT NULL AUTO_INCREMENT,
note_id INT NULL DEFAULT NULL,
content_type ENUM('guide','mindmap','summary') NULL DEFAULT NULL,
content TEXT NULL DEFAULT NULL,
content_hash VARCHAR(255) NULL DEFAULT NULL,
vector_id VARCHAR(255) NULL DEFAULT NULL,
recall_times INT NULL DEFAULT '0',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
INDEX idx_note_id (note_id),
INDEX idx_content_hash (content_hash),
INDEX idx_content_type (content_type),
CONSTRAINT fk_clean_note_store_note_id FOREIGN KEY (note_id)
REFERENCES xhs_notes (id) ON UPDATE NO ACTION ON DELETE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2. 方式二:使用SQL文件初始化
- 创建初始化SQL文件
cat > init.sql << 'EOF'
CREATE DATABASE 9Xin;
USE 9Xin;
CREATE TABLE xhs_notes (
id INT AUTO_INCREMENT PRIMARY KEY,
note_id VARCHAR(255) NOT NULL,
title VARCHAR(255),
description TEXT,
type ENUM('normal', 'other') NOT NULL
);
CREATE TABLE vector_store (
id INT AUTO_INCREMENT PRIMARY KEY,
note_id INT NOT NULL,
vector_id VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
content_hash VARCHAR(64) NOT NULL,
FOREIGN KEY (note_id) REFERENCES xhs_notes(id)
);
CREATE TABLE clean_note_store (
id INT NOT NULL AUTO_INCREMENT,
note_id INT NULL DEFAULT NULL,
content_type ENUM('guide','mindmap','summary') NULL DEFAULT NULL,
content TEXT NULL DEFAULT NULL,
content_hash VARCHAR(255) NULL DEFAULT NULL,
vector_id VARCHAR(255) NULL DEFAULT NULL,
recall_times INT NULL DEFAULT '0',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
INDEX idx_note_id (note_id),
INDEX idx_content_hash (content_hash),
INDEX idx_content_type (content_type),
CONSTRAINT fk_clean_note_store_note_id FOREIGN KEY (note_id)
REFERENCES xhs_notes (id) ON UPDATE NO ACTION ON DELETE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
EOF
- 将SQL文件复制到容器中并执行
# 复制SQL文件到容器
docker cp init.sql mysql-server:/init.sql
# 在容器中执行SQL文件
docker exec mysql-server mysql -uroot -p"zaq12wsx@9Xin" < init.sql
3. 验证数据库和表结构
# 验证数据库
docker exec mysql-server mysql -uroot -p"zaq12wsx@9Xin" -e "SHOW DATABASES;"
# 验证表结构
docker exec mysql-server mysql -uroot -p"zaq12wsx@9Xin" -e "USE 9Xin; SHOW TABLES;"
# 验证具体表结构
docker exec mysql-server mysql -uroot -p"zaq12wsx@9Xin" -e "USE 9Xin; DESCRIBE xhs_notes;"
docker exec mysql-server mysql -uroot -p"zaq12wsx@9Xin" -e "USE 9Xin; DESCRIBE vector_store;"
故障排查指南
1. 容器无法启动
- 检查端口占用:
netstat -tunlp | grep 3316
- 检查容器日志:
docker logs mysql-server
- 检查系统资源:
docker stats mysql-server
2. 无法连接数据库
- 检查容器运行状态:
docker ps | grep mysql-server
- 检查端口映射:
docker port mysql-server
- 检查网络连通性:
telnet 127.0.0.1 3316
3. 性能问题
- 查看容器资源使用:
docker stats mysql-server
- 查看MySQL进程列表:
mysql -h 127.0.0.1 -P 3316 -u root -p -e "SHOW PROCESSLIST;"
备份策略
导出数据
# 导出全部数据库
docker exec mysql-server mysqldump -u root -p"zaq12wsx@9Xin" --all-databases > backup_$(date +%Y%m%d).sql
# 导出指定数据库
docker exec mysql-server mysqldump -u root -p"zaq12wsx@9Xin" database_name > database_$(date +%Y%m%d).sql
导入数据
# 导入数据
docker exec -i mysql-server mysql -u root -p"zaq12wsx@9Xin" < backup.sql
安全建议
- 及时更新MySQL版本以修复安全漏洞
- 定期修改root密码
- 限制远程访问IP
- 创建具有最小权限的用户账号
- 定期备份数据
监控指标
- 容器状态
- CPU使用率
- 内存使用率
- 磁盘I/O
- 连接数
- 慢查询数量
文档维护记录
日期 | 版本 | 修改人 | 修改内容 |
---|---|---|---|
YYYY-MM-DD | 1.0 | 初始作者 | 创建文档 |