当前位置:首页>Linux>PostgreSQL安装教程_Linux_Debian11

PostgreSQL安装教程_Linux_Debian11

  • 2026-03-23 10:30:33
PostgreSQL安装教程_Linux_Debian11

PostgreSQL编译安装

本文主要介绍如何快速在自己的linux服务器上安装各个版本的PostgreSQL,主旨在于快速开始一个新版本的PostgreSQL环境。用来进行测试和学习。本次测试环境为debian11。

01.前提准备

已挂载/data盘1.parted -s /dev/sdb mklabel msdos mkpart primary 0% 100% && partprobe 2.mkfs.ext4 /dev/sdb13.mkdir -p /data && mount /dev/sdb1 /data4.echo "/dev/sdb1    /data    ext4    defaults    0 0" >> /etc/fstab已配置apt包管理工具cp /etc/apt/sources.list /etc/apt/sources.list.bakcat > /etc/apt/sources.list << EOFdeb http://deb.debian.org/debian bullseye main contrib non-freedeb http://deb.debian.org/debian bullseye-updates main contrib non-freedeb http://deb.debian.org/debian bullseye-backports main contrib non-freedeb http://security.debian.org/debian-security bullseye-security main contrib non-freeEOFapt update

01.安装脚本

#!/bin/bash# PostgreSQL 版本自动安装脚本 (支持断点续跑)# 使用方法: ./add_pg_version_1.1.sh <版本号> [起始步骤]# 示例: ./add_pg_version_1.1.sh 17.3      # 从第1步开始# 示例: ./add_pg_version_1.1.sh 17.3 7    # 从第7步开始# 示例: ./add_pg_version_1.1.sh --list    # 列出所有可安装版本 (14+)# 示例: ./add_pg_version_1.1.sh --delete 17.3  # 删除指定版本set -eERROR_DIR="/data/soft/postgres/errors"mkdir -p "$ERROR_DIR"# ========== 列出可安装版本 ==========if [ "${1}" = "--list" ]; then    echo "正在获取 PostgreSQL 可安装版本列表 (14+)..."    echo "========================================"    VERSION_LIST=$(curl -s https://ftp.postgresql.org/pub/source/ 2>/dev/null | \        grep -oP 'v1[4-9]\.[0-9]+|v[2-9][0-9]\.[0-9]+' | \        sed 's/^v//' | \        sort -t. -k1,1n -k2,2n | \        uniq)    if [ -z "$VERSION_LIST" ]; then        echo "无法获取版本列表,请检查网络连接"        exit 1    fi    echo "可用版本 (14+):"    echo "----------------------------------------"    echo "$VERSION_LIST" | while read ver; do        VER_NO_DOT=$(echo "$ver" | tr -d '.')        VER_LEN=${#VER_NO_DOT}        if [ "$VER_LEN" -eq 4 ]; then            PORT="5${VER_NO_DOT}"        else            PORT="54${VER_NO_DOT}"        fi        printf "  %-10s  端口: %s\n" "$ver" "$PORT"    done    echo "========================================"    echo "安装示例: $0 17.3"    exit 0fi# ========== 删除指定版本 ==========if [ "${1}" = "--delete" ]; then    if [ -z "${2}" ]; then        echo "错误: 请指定要删除的版本号"        echo "使用方法: $0 --delete <版本号>"        echo "示例: $0 --delete 17.3"        exit 1    fi    DEL_VERSION=$2    DEL_DATA_DIR="/data/pgdata/pgdata${DEL_VERSION}"    DEL_INSTALL_DIR="/usr/local/pgsql/pgsql${DEL_VERSION}"    echo "========================================"    echo "开始删除 PostgreSQL ${DEL_VERSION}"    echo "========================================"    # 检查数据目录是否存在    if [ ! -d "$DEL_DATA_DIR" ]; then        echo "数据目录不存在: ${DEL_DATA_DIR}"        echo "版本 ${DEL_VERSION} 未安装或已删除"        exit 1    fi    echo "[1/3] 查找并停止 PostgreSQL ${DEL_VERSION} 进程..."    # 查找该数据目录对应的 postgres 主进程 (排除 grep 自身)    PG_PIDS=$(ps -ef | grep "${DEL_DATA_DIR}" | grep -v grep | awk '{print $2}')    if [ -n "$PG_PIDS" ]; then        echo "找到以下相关进程:"        ps -ef | grep "${DEL_DATA_DIR}" | grep -v grep        echo ""        echo "正在停止进程..."        for pid in $PG_PIDS; do            kill $pid 2>/dev/null && echo "  已终止进程 PID: $pid" || echo "  无法终止进程 PID: $pid (可能已退出)"        done        # 等待进程退出        sleep 2        # 再次检查,若仍在运行则强制杀掉        REMAIN_PIDS=$(ps -ef | grep "${DEL_DATA_DIR}" | grep -v grep | awk '{print $2}')        if [ -n "$REMAIN_PIDS" ]; then            echo "进程仍在运行,强制终止..."            for pid in $REMAIN_PIDS; do                kill -9 $pid 2>/dev/null && echo "  已强制终止进程 PID: $pid" || echo "  无法强制终止进程 PID: $pid"            done            sleep 1        fi        echo "所有进程已停止"    else        echo "未发现运行中的 PostgreSQL ${DEL_VERSION} 进程"    fi    echo "[2/3] 删除数据目录..."    if [ -d "$DEL_DATA_DIR" ]; then        rm -rf "$DEL_DATA_DIR"        echo "  已删除: ${DEL_DATA_DIR}"    fi    echo "[3/3] 删除安装目录..."    if [ -d "$DEL_INSTALL_DIR" ]; then        rm -rf "$DEL_INSTALL_DIR"        echo "  已删除: ${DEL_INSTALL_DIR}"    fi    echo ""    echo "========================================"    echo "PostgreSQL ${DEL_VERSION} 已完全删除"    echo "========================================"    exit 0fi# ========== 检查参数 ==========if [ $# -lt 1 ] || [ $# -gt 2 ]; then    echo "使用方法: $0 <版本号> [起始步骤]"    echo "示例: $0 17.3      # 从第1步开始"    echo "示例: $0 17.3 7    # 从第7步开始"    echo "示例: $0 --list    # 列出所有可安装版本 (14+)"    echo "示例: $0 --delete 17.3  # 删除指定版本"    exit 1fiPG_VERSION=$1START_STEP=${2:-1}  # 默认从第1步开始# 验证起始步骤是否有效if [ "$START_STEP" -lt 1 ] || [ "$START_STEP" -gt 10 ]; then    echo "错误: 起始步骤必须是 1-10 之间的数字"    exit 1fiPG_USER="postgres"PG_BASE_DIR="/usr/local/pgsql"PG_VERSION_DIR="${PG_BASE_DIR}/pgsql${PG_VERSION}"PG_DATA_DIR="/data/pgdata/pgdata${PG_VERSION}"PG_SOFT_DIR="/data/soft/postgres"# 解析版本号获取端口号# 规则: 4位补5,3位补54 (例如 17.3 -> 173 -> 54173, 12.15 -> 1215 -> 51215)PG_VERSION_NO_DOT=$(echo $PG_VERSION | tr -d '.')VERSION_LENGTH=${#PG_VERSION_NO_DOT}if [ $VERSION_LENGTH -eq 4 ]; then    PG_PORT="5${PG_VERSION_NO_DOT}"else    PG_PORT="54${PG_VERSION_NO_DOT}"fiPG_TARBALL="postgresql-${PG_VERSION}.tar.gz"PG_DOWNLOAD_PATH="${PG_SOFT_DIR}/${PG_TARBALL}"PG_SRC_DIR="/data/soft/postgres/postgresql-${PG_VERSION}"# 检测是否以 root 身份运行IS_ROOT=falseif [ "$(id -u)" -eq 0 ]; then    IS_ROOT=true    echo "检测到 root 用户运行,涉及编译安装的步骤将自动切换到 postgres 用户执行"fi# 封装: 以 postgres 用户执行命令run_as_postgres() {    if [ "$IS_ROOT" = true ]; then        su - $PG_USER -c "$*"    else        eval "$*"    fi}# 封装: 安装 apt 包 (已存在则跳过,stdout -> /dev/null, stderr -> 错误文件)install_apt_pkg() {    local pkg=$1    local error_file="${ERROR_DIR}/apt_${pkg}.err"    if dpkg -l "$pkg" 2>/dev/null | grep -q "^ii"; then        echo "  [已安装] $pkg,跳过"    else        echo "  [安装中] $pkg..."        if apt install -y "$pkg" >/dev/null 2>"$error_file"; then            echo "  [完成] $pkg"            rm -f "$error_file"        else            echo "  [失败] $pkg,错误信息见: $error_file"        fi    fi}echo "========================================"echo "开始安装 PostgreSQL ${PG_VERSION}"echo "起始步骤: ${START_STEP}"echo "========================================"echo "安装目录: ${PG_VERSION_DIR}"echo "数据目录: ${PG_DATA_DIR}"echo "端口: ${PG_PORT}"echo "错误日志目录: ${ERROR_DIR}"echo "========================================"# ========== 步骤 1: 检查并配置 /data 盘 ==========if [ "$START_STEP" -le 1 ]; then    echo "[1/10] 检查 /data 盘配置..."    if ! mountpoint -q /data; then        echo "警告: /data 目录未挂载,请先按照 CLAUDE.md 配置磁盘挂载"        read -p "是否继续? (y/n) " -n 1 -r        echo        if [[ ! $REPLY =~ ^[Yy]$ ]]; then            exit 1        fi    fielse    echo "[1/10] 跳过"fi# ========== 步骤 2: 检查 postgres 用户 ==========if [ "$START_STEP" -le 2 ]; then    echo "[2/10] 检查 postgres 用户..."    if ! id -u $PG_USER >/dev/null 2>&1; then        echo "创建 postgres 用户..."        groupadd postgres || true        useradd -m -d /home/postgres -s /bin/bash -g postgres postgres || true        echo -e "Cql@3673@\nCql@3673@" | passwd postgres        # 配置 sudo 权限        echo "配置 sudo 权限..."        if ! grep -q "^postgres.*NOPASSWD" /etc/sudoers; then            sh -c 'echo "postgres ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'        fi    else        echo "postgres 用户已存在"    fielse    echo "[2/10] 跳过"fi# ========== 步骤 3: 授权目录 ==========if [ "$START_STEP" -le 3 ]; then    echo "[3/10] 授权目录..."    mkdir -p $PG_BASE_DIR    chown -R $PG_USER:$PG_USER $PG_BASE_DIR/    chown -R $PG_USER:$PG_USER /dataelse    echo "[3/10] 跳过"fi# ========== 步骤 4: 下载 PostgreSQL 安装包 ==========if [ "$START_STEP" -le 4 ]; then    echo "[4/10] 下载 PostgreSQL ${PG_VERSION} 安装包..."    mkdir -p $PG_SOFT_DIR    if [ -f "$PG_DOWNLOAD_PATH" ]; then        echo "安装包已存在: $PG_DOWNLOAD_PATH"    else        echo "正在下载..."        wget -P $PG_SOFT_DIR/ https://ftp.postgresql.org/pub/source/v${PG_VERSION}/postgresql-${PG_VERSION}.tar.gz    fi    chown -R $PG_USER:$PG_USER $PG_SOFT_DIRelse    echo "[4/10] 跳过"fi# ========== 步骤 5: 创建目录结构 ==========if [ "$START_STEP" -le 5 ]; then    echo "[5/10] 创建目录结构..."    mkdir -p $PG_VERSION_DIR    mkdir -p $PG_DATA_DIR    chown -R $PG_USER:$PG_USER $PG_VERSION_DIR    chown -R $PG_USER:$PG_USER $PG_DATA_DIRelse    echo "[5/10] 跳过"fi# ========== 步骤 6: 解压并编译安装 ==========if [ "$START_STEP" -le 6 ]; then    echo "[6/10] 解压并编译安装..."    # 安装依赖 (root 执行)    echo "安装依赖..."    apt update >/dev/null 2>"${ERROR_DIR}/apt_update.err" || true    install_apt_pkg libxml2    install_apt_pkg libxml2-dev    install_apt_pkg libreadline-dev    install_apt_pkg libperl-dev    install_apt_pkg python3-dev    install_apt_pkg build-essential    install_apt_pkg flex    install_apt_pkg bison    # 解压 (postgres 用户执行)    echo "解压源码..."    if run_as_postgres "[ -d ${PG_SRC_DIR} ]"; then        echo "源码目录已存在,跳过解压"    else        EXTRACT_ERROR="${ERROR_DIR}/tar_extract.err"        run_as_postgres "cd ${PG_SOFT_DIR} && tar -zxf ${PG_TARBALL} 2>${EXTRACT_ERROR}"        if [ $? -eq 0 ]; then            echo "解压完成"            rm -f "$EXTRACT_ERROR"        else            echo "解压失败,错误信息见: ${EXTRACT_ERROR}"            exit 1        fi    fi    # 配置并编译 (postgres 用户执行)    echo "配置..."    run_as_postgres "cd ${PG_SRC_DIR} && ./configure --prefix=${PG_VERSION_DIR} --enable-debug --enable-cassert --with-libxml --with-perl --with-python >/dev/null 2>${ERROR_DIR}/configure.err"    echo "编译安装 (这可能需要一些时间)..."    run_as_postgres "cd ${PG_SRC_DIR} && make -j 4 >/dev/null 2>${ERROR_DIR}/make.err"    run_as_postgres "cd ${PG_SRC_DIR} && make install >/dev/null 2>${ERROR_DIR}/make_install.err"else    echo "[6/10] 跳过"fi# ========== 步骤 7: 初始化数据库 ==========if [ "$START_STEP" -le 7 ]; then    echo "[7/10] 初始化数据库..."    if [ -d "$PG_DATA_DIR" ] && [ "$(ls -A $PG_DATA_DIR)" ]; then        echo "数据目录已存在且不为空,跳过初始化"    else        export PATH=${PG_VERSION_DIR}/bin:$PATH        run_as_postgres "export PATH=${PG_VERSION_DIR}/bin:\$PATH && initdb -D ${PG_DATA_DIR} -U postgres"    fielse    echo "[7/10] 跳过"fi# ========== 步骤 8: 修改 postgresql.conf ==========if [ "$START_STEP" -le 8 ]; then    echo "[8/10] 修改配置文件..."    CONF_FILE="${PG_DATA_DIR}/postgresql.conf"    # 检查是否已配置    if grep -q "listen_addresses = '\*'" "$CONF_FILE"; then        echo "配置已存在,跳过修改"    else        echo "listen_addresses = '*'port=${PG_PORT}             # 端口规则: 3位补54, 4位补5 (如17.3->54173, 12.15->51215)log_destination = 'csvlog'logging_collector = onlog_filename = 'postgresql-%Y-%m-%d.log'" >> $CONF_FILE    fielse    echo "[8/10] 跳过"fi# ========== 步骤 9: 修改 pg_hba.conf ==========if [ "$START_STEP" -le 9 ]; then    echo "[9/10] 修改 pg_hba.conf..."    HBA_FILE="${PG_DATA_DIR}/pg_hba.conf"    # 检查是否已配置    if grep -q "192.168.101.0/24" "$HBA_FILE"; then        echo "pg_hba.conf 已配置,跳过修改"    else        # 在说明的下层添加配置        sed -i "/^# TYPE/a host    all             all             192.168.101.0/24        md5\nhost    replication     replica         192.168.101.0/24        trust" $HBA_FILE    fielse    echo "[9/10] 跳过"fi# ========== 步骤 10: 修改 postgres 用户 .bashrc ==========if [ "$START_STEP" -le 10 ]; then    echo "[10/10] 修改 postgres 用户 .bashrc..."    BASHRC="/home/postgres/.bashrc"    # 确保 .bashrc 存在    if [ ! -f "$BASHRC" ]; then        run_as_postgres "touch $BASHRC"    fi    PATH_LINE="export PATH=${PG_VERSION_DIR}/bin:\$PATH"    LD_LINE="export LD_LIBRARY_PATH=${PG_VERSION_DIR}/lib:\$LD_LIBRARY_PATH"    # 清理旧的 PG 相关 PATH 和 LD_LIBRARY_PATH 配置(包括 export export 等异常格式)    sed -i '/^export[[:space:]]*export[[:space:]]*PATH=/d' "$BASHRC"    sed -i '/^export[[:space:]]*export[[:space:]]*LD_LIBRARY_PATH=/d' "$BASHRC"    sed -i '/^export[[:space:]]*PATH=.*\/pgsql/d' "$BASHRC"    sed -i '/^export[[:space:]]*LD_LIBRARY_PATH=.*\/pgsql/d' "$BASHRC"    # 追加新配置    echo "$PATH_LINE" >> "$BASHRC"    echo "$LD_LINE" >> "$BASHRC"    echo "  已配置 PATH 和 LD_LIBRARY_PATH"    source $BASHRC    chown postgres:postgres "$BASHRC"else    echo "[10/10] 跳过"fiecho ""echo "========================================"echo "PostgreSQL ${PG_VERSION} 安装完成!"echo "========================================"echo "安装目录: ${PG_VERSION_DIR}"echo "数据目录: ${PG_DATA_DIR}"echo "端口: ${PG_PORT}"echo ""echo "启动数据库:"echo "  pg_ctl -D ${PG_DATA_DIR} start"echo ""echo "连接数据库:"echo " psql  -p ${PG_PORT} -U postgres"echo ""

02.使用方法

###查看可安装的pg版本./add_pg_version_1.1.sh  --list正在获取 PostgreSQL 可安装版本列表 (14+)...========================================可用版本 (14+):----------------------------------------  14.0        端口: 54140  14.1        端口: 54141  14.2        端口: 54142  14.3        端口: 54143  14.4        端口: 54144  14.5        端口: 54145  14.6        端口: 54146  14.7        端口: 54147  14.8        端口: 54148  14.9        端口: 54149  14.10       端口: 51410  14.11       端口: 51411  14.12       端口: 51412  14.13       端口: 51413  14.14       端口: 51414  14.15       端口: 51415  14.16       端口: 51416  14.17       端口: 51417  14.18       端口: 51418  14.19       端口: 51419  14.20       端口: 51420  14.21       端口: 51421  14.22       端口: 51422  15.0        端口: 54150  15.1        端口: 54151  15.2        端口: 54152  15.3        端口: 54153  15.4        端口: 54154  15.5        端口: 54155  15.6        端口: 54156  15.7        端口: 54157  15.8        端口: 54158  15.9        端口: 54159  15.10       端口: 51510  15.11       端口: 51511  15.12       端口: 51512  15.13       端口: 51513  15.14       端口: 51514  15.15       端口: 51515  15.16       端口: 51516  15.17       端口: 51517  16.0        端口: 54160  16.1        端口: 54161  16.2        端口: 54162  16.3        端口: 54163  16.4        端口: 54164  16.5        端口: 54165  16.6        端口: 54166  16.7        端口: 54167  16.8        端口: 54168  16.9        端口: 54169  16.10       端口: 51610  16.11       端口: 51611  16.12       端口: 51612  16.13       端口: 51613  17.0        端口: 54170  17.1        端口: 54171  17.2        端口: 54172  17.3        端口: 54173  17.4        端口: 54174  17.5        端口: 54175  17.6        端口: 54176  17.7        端口: 54177  17.8        端口: 54178  17.9        端口: 54179  18.0        端口: 54180  18.1        端口: 54181  18.2        端口: 54182  18.3        端口: 54183###安装新的pg版本./add_pg_version_1.1.sh  17.3检测到 root 用户运行,涉及编译安装的步骤将自动切换到 postgres 用户执行========================================开始安装 PostgreSQL 17.3起始步骤: 1========================================安装目录: /usr/local/pgsql/pgsql17.3数据目录: /data/pgdata/pgdata17.3端口: 54173错误日志目录: /data/soft/postgres/errors========================================[1/10] 检查 /data 盘配置...[2/10] 检查 postgres 用户...创建 postgres 用户...useradd: Not copying any file from skel directory into it.New password: Retype new password: passwd: password updated successfully配置 sudo 权限...[3/10] 授权目录...[4/10] 下载 PostgreSQL 17.3 安装包...安装包已存在: /data/soft/postgres/postgresql-17.3.tar.gz[5/10] 创建目录结构...[6/10] 解压并编译安装...安装依赖...  [已安装] libxml2,跳过  [已安装] libxml2-dev,跳过  [已安装] libreadline-dev,跳过  [已安装] libperl-dev,跳过  [已安装] python3-dev,跳过  [已安装] build-essential,跳过  [已安装] flex,跳过  [已安装] bison,跳过解压源码...源码目录已存在,跳过解压配置...编译安装 (这可能需要一些时间)...[7/10] 初始化数据库...[8/10] 修改配置文件...[9/10] 修改 pg_hba.conf...[10/10] 修改 postgres 用户 .bashrc...  已配置 PATH 和 LD_LIBRARY_PATH========================================PostgreSQL 17.3 安装完成!========================================安装目录: /usr/local/pgsql/pgsql17.3数据目录: /data/pgdata/pgdata17.3端口: 54173启动数据库:  pg_ctl -D /data/pgdata/pgdata17.3 start连接数据库: psql  -p 54173 -U postgres###删除已安装的pg版本root@testai:/data/testai/add_pg_version# ps -ef|grep "postgres -D"postgres    3347       1  0 11:06 ?        00:00:00 /usr/local/pgsql/pgsql18.3/bin/postgres -D /data/pgdata/pgdata18.3postgres   62568       1  0 17:18 ?        00:00:00 /usr/local/pgsql/pgsql17.3/bin/postgres -D /data/pgdata/pgdata17.3root@testai:/data/testai/add_pg_version# ./add_pg_version_1.1.sh  --delete 17.3========================================开始删除 PostgreSQL 17.3========================================[1/3] 查找并停止 PostgreSQL 17.3 进程...找到以下相关进程:postgres   62568       1  0 17:18 ?        00:00:00 /usr/local/pgsql/pgsql17.3/bin/postgres -D /data/pgdata/pgdata17.3正在停止进程...  已终止进程 PID: 62568所有进程已停止[2/3] 删除数据目录...  已删除: /data/pgdata/pgdata17.3[3/3] 删除安装目录...  已删除: /usr/local/pgsql/pgsql17.3========================================PostgreSQL 17.3 已完全删除========================================root@testai:/data/testai/add_pg_version# ps -ef|grep "postgres -D"postgres    3347       1  0 11:06 ?        00:00:00 /usr/local/pgsql/pgsql18.3/bin/postgres -D /data/pgdata/pgdata18.3root       62836   24304  0 17:25 pts/2    00:00:00 grep postgres -Droot@testai:/data/testai/add_pg_version# ./add_pg_version_1.1.sh  --delete 18.3========================================开始删除 PostgreSQL 18.3========================================[1/3] 查找并停止 PostgreSQL 18.3 进程...找到以下相关进程:postgres    3347       1  0 11:06 ?        00:00:00 /usr/local/pgsql/pgsql18.3/bin/postgres -D /data/pgdata/pgdata18.3正在停止进程...  已终止进程 PID: 3347所有进程已停止[2/3] 删除数据目录...  已删除: /data/pgdata/pgdata18.3[3/3] 删除安装目录...  已删除: /usr/local/pgsql/pgsql18.3========================================PostgreSQL 18.3 已完全删除

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 09:56:28 HTTP/2.0 GET : https://f.mffb.com.cn/a/481715.html
  2. 运行时间 : 0.239412s [ 吞吐率:4.18req/s ] 内存消耗:4,951.39kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3efd068696328d9e8e1f8ae62bbbe7f0
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001229s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001611s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002061s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000718s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.002091s ]
  6. SELECT * FROM `set` [ RunTime:0.000724s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.002014s ]
  8. SELECT * FROM `article` WHERE `id` = 481715 LIMIT 1 [ RunTime:0.002031s ]
  9. UPDATE `article` SET `lasttime` = 1774576588 WHERE `id` = 481715 [ RunTime:0.017708s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000618s ]
  11. SELECT * FROM `article` WHERE `id` < 481715 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001441s ]
  12. SELECT * FROM `article` WHERE `id` > 481715 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001238s ]
  13. SELECT * FROM `article` WHERE `id` < 481715 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002351s ]
  14. SELECT * FROM `article` WHERE `id` < 481715 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002438s ]
  15. SELECT * FROM `article` WHERE `id` < 481715 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008835s ]
0.244787s