Ubuntu 22.04 安装 mysql-server、postgreSQL 及 neo4j 图数据库服务端

发布于:2025-07-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、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部署

  1. 首先先创建一个 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
  1. 创建一个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
  1. 运行
docker-compose up -d
  1. 查看
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
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到