一、Mysql 安装
1.1、物理机部署
安装Mysql
sudo apt-get update
sudo apt-get install mysql-server
sudo service mysql start
初始化mysql服务
mysql -u root
创建账户
CREATE USER 'gpt'@'localhost' IDENTIFIED BY 'gpt';
给账户赋权限
GRANT ALL PRIVILEGES ON *.* TO 'gpt'@'localhost';
FLUSH PRIVILEGES;
创建数据库
create database langgraph;
1.2、使用docker部署
- 首先先创建一个
my.conf
文件,文件的内容见下文, 然后再执行docker-compose.yml配置文件
my.conf文件内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'
# 设置密码验证规则,保持兼容性
authentication_policy=mysql_native_password
# 初始化连接时设置字符集
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
# 配置字符集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
skip-name-resolve
# 配置数据库表名小写(跨平台建议打开)
# lower_case_table_names=1
# 远程访问相关配置
# 设置监听所有网络接口,允许远程连接
bind-address = 0.0.0.0
# # 关闭主机名解析(提高连接速度)
# skip-name-resolve
# # 调整最大连接数(可根据需求修改)
# max_connections = 600
- 创建一个docker-compose.yml 文件
docker-compose.yml 文件
services:
mysql:
image: mysql:8.0.41
container_name: mysql
restart: unless-stopped # 防止有意停止时重启
environment:
LOWER_CASE_TABLE_NAMES: 1
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} # root 用户如果开启远程访问,密码需要设置复杂一些,如果宿主机环境变量不存在,使用 123456 作为默认值
MYSQL_DATABASE: Database_test # 创建一个数据库
MYSQL_USER: gpt
MYSQL_PASSWORD: 123456
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql # 挂载mysql 数据卷
- mysql_log:/var/log/mysql # 挂在mysql 日志卷
- /etc/localtime:/etc/localtime:ro # 挂载当前服务器时间到容器
- ./my.cnf:/etc/mysql/my.cnf # 自定义MySQL配置用于安全/性能
networks:
- app_network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-123456}"] #
interval: 10s
timeout: 5s
retries: 5
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
mysql_log:
name: mysql8.0.41_log
mysql_data:
name: mysql8.0.41_data
networks:
app_network:
driver: bridge
- 运行
docker-compose up -d
- 查看
docker ps -a
二、PostgreSQL 安装
2.1、使用docker 临时部署
docker run -d --rm -p 5432:5432 --name postgres_test -v /etc/localtime:/etc/localtime:ro -e POSTGRES_PASSWORD=123456 postgres:16.9
2.2、 使用docker-compose部署
services:
pg:
image: postgres:16.9
container_name: pg
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-123456}
POSTGRES_DB: Database_test # 创建一个数据库
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data # 挂载数据
- /etc/localtime:/etc/localtime:ro
# 挂载 postgresql.conf 按需放开,否则建议不用专门定制
# - ./postgresql.conf:/etc/postgresql/postgresql.conf
# 如需初始化脚本,用下面方式
# - ./init.sql:/docker-entrypoint-initdb.d/init.sql
# - pg_log:/var/log/postgresql # PostgreSQL 默认不使用该目录保存日志,需要在上述 .conf 定义好再使用
networks:
- pg_network
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"] # 使用超级管理员 postgres 用户健康检测
interval: 10s
timeout: 5s
retries: 5
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
pg_data:
name: postgres16_data
# pg_log:
# name: postgres16_log
networks:
pg_network:
driver: bridge
三、Neo4j图数据库安装
3.1、docker 临时部署
临时是启动 neo4j 图数据库服务端
- 7474 for http 协议可视化web服务
- 7473 for https 协议
- 7687 for bolt 远程连接 neo4j 数据库服务端
docker run --rm -d -p 7474:7474 -p 7687:7687 --name neo4j -e NEO4J_AUTH=neo4j/123456 neo4j:4.4-community
挂载一些目录(需要提前创建这些目录,并且利用上述临时启动的容器,将一些目录copy到宿主机上
docker run --rm -d -p 7474:7474 -p 7687:7687 --name neo4j \
-e NEO4J_AUTH=neo4j/123456 \
-v ./data:/data \
-v ./logs:/logs \
-v ./conf:/var/lib/neo4j/conf \
-v ./import:/var/lib/neo4j/import \
neo4j:4.4-community
3.2、docker-compose部署
services:
neo4j:
image: neo4j:4.4-community
container_name: neo4j
restart: unless-stopped
environment:
NEO4J_AUTH: ${NEO4J_AUTH:-neo4j/123456} # 用环境变量支持自定义账户密码,默认 neo4j/123456, 若公网远程提供服务需设置更加复杂的密码
# 如需自定义更多参数,可按需增添
ports:
- "7474:7474" # HTTP 协议可视化web服务
- "7473:7473" # HTTPS 协议可视化web服务
- "7687:7687" # Bolt 远程连接 neo4j 数据库服务端
volumes:
- /etc/localtime:/etc/localtime:ro # 挂载系统时间
- neo4j_data:/data # 挂载数据卷
- neo4j_logs:/logs # 挂载日志卷
- neo4j_conf:/var/lib/neo4j/conf
- neo4j_import:/var/lib/neo4j/import
networks:
- neo4j_network
healthcheck:
# 检查服务健康,查看bolt 健康情况
test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/7687'"]
interval: 15s
timeout: 10s
retries: 5
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
neo4j_data:
name: neo4j4.4_data
neo4j_logs:
name: neo4j4.4_logs
neo4j_conf:
name: neo4j4.4_conf
neo4j_import:
name: neo4j4.4_import
networks:
neo4j_network:
driver: bridge
运行
docker-compose up -d
web 访问
neo4j,本地浏览器打开 127.0.0.1:7474