在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

2023-12-01 18:15

本文主要是介绍在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在龙蜥 OS 23上,本来想使用二进制安装,结果发现没有针对龙蜥的列表:

于是想到了源码安装,下面我们列出了PG源码安装的步骤:

1.安装准备

1.1.创建操作系统组及用户

groupadd postgres

useradd -g postgres -m postgres

1.2.建立目录

[root@dbserver1 ~]# mkdir -p /postgresql/{pgdata,pg16,soft}

[root@dbserver1 ~]# chown -R postgres:postgres /postgresql

[root@dbserver1 ~]# chmod -R 775 /postgresql

1.3.下载软件

下载软件

https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz

PostgreSQL: File Browser

[root@dbserver1 ~]# cd /postgresql/soft

[root@dbserver1 soft]# pwd

/postgresql/soft

[root@dbserver1 soft]# ls -ltr

total 0

[root@dbserver1 soft]# wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz

1.4.安装依赖包

使用yum安装,更简单

yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel  \

 python36 tcl openssl ncurses-devel openldap pam flex

2.源码安装

2.1.解压

[root@dbserver1 soft]# ls -ltr

total 31676

-rw-r--r--. 1 root root 32433767 Nov  7 06:19 postgresql-16.1.tar.gz

[root@dbserver1 soft]#

[root@dbserver1 soft]# tar xvzf postgresql-16.1.tar.gz

[root@dbserver1 soft]# cd postgresql-16.1/

[root@dbserver1 postgresql-16.1]# pwd

/postgresql/soft/postgresql-16.1

[root@dbserver1 postgresql-16.1]# ls -ltr

total 872

-rw-r--r--.  1 1107 1107   1213 Nov  7 06:04 README

-rw-r--r--.  1 1107 1107   6266 Nov  7 06:04 meson_options.txt

-rw-r--r--.  1 1107 1107   1875 Nov  7 06:04 Makefile

-rw-r--r--.  1 1107 1107    277 Nov  7 06:04 HISTORY

-rw-r--r--.  1 1107 1107   4288 Nov  7 06:04 GNUmakefile.in

-rw-r--r--.  1 1107 1107   1192 Nov  7 06:04 COPYRIGHT

-rw-r--r--.  1 1107 1107  87292 Nov  7 06:04 configure.ac

-rwxr-xr-x.  1 1107 1107 584560 Nov  7 06:04 configure

-rw-r--r--.  1 1107 1107    365 Nov  7 06:04 aclocal.m4

-rw-r--r--.  1 1107 1107 102017 Nov  7 06:17 meson.build

drwxrwxrwx. 61 1107 1107   4096 Nov  7 06:17 contrib

drwxrwxrwx.  2 1107 1107   4096 Nov  7 06:17 config

drwxrwxrwx.  3 1107 1107     87 Nov  7 06:17 doc

-rw-r--r--.  1 1107 1107  64601 Nov  7 06:18 INSTALL

drwxrwxrwx. 16 1107 1107   4096 Nov  7 06:18 src

[root@dbserver1 postgresql-16.1]#

2.2 配置

[root@dbserver1 postgresql-16.1]# ./configure --prefix=/postgresql/pg16

-------------------------------------------------------------------------------

[root@dbserver1 postgresql-16.1]# ./configure --prefix=/postgresql/pg16

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checking which template to use... linux

checking whether NLS is wanted... no

checking for default port number... 5432

checking for block size... 8kB

checking for segment size... 1GB

checking for WAL block size... 8kB

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for gcc option to accept ISO C99... none needed

checking for g++... g++

checking whether we are using the GNU C++ compiler... yes

checking whether g++ accepts -g... yes

checking for gawk... gawk

checking whether gcc supports -Wdeclaration-after-statement, for CFLAGS... yes

checking whether gcc supports -Werror=vla, for CFLAGS... yes

checking whether gcc supports -Werror=unguarded-availability-new, for CFLAGS... no

checking whether g++ supports -Werror=unguarded-availability-new, for CXXFLAGS... no

checking whether gcc supports -Wendif-labels, for CFLAGS... yes

checking whether g++ supports -Wendif-labels, for CXXFLAGS... yes

checking whether gcc supports -Wmissing-format-attribute, for CFLAGS... yes

checking whether g++ supports -Wmissing-format-attribute, for CXXFLAGS... yes

checking whether gcc supports -Wimplicit-fallthrough=3, for CFLAGS... yes

checking whether g++ supports -Wimplicit-fallthrough=3, for CXXFLAGS... yes

checking whether gcc supports -Wcast-function-type, for CFLAGS... yes

checking whether g++ supports -Wcast-function-type, for CXXFLAGS... yes

checking whether gcc supports -Wshadow=compatible-local, for CFLAGS... yes

checking whether g++ supports -Wshadow=compatible-local, for CXXFLAGS... yes

checking whether gcc supports -Wformat-security, for CFLAGS... yes

checking whether g++ supports -Wformat-security, for CXXFLAGS... yes

checking whether gcc supports -fno-strict-aliasing, for CFLAGS... yes

checking whether g++ supports -fno-strict-aliasing, for CXXFLAGS... yes

checking whether gcc supports -fwrapv, for CFLAGS... yes

checking whether g++ supports -fwrapv, for CXXFLAGS... yes

checking whether gcc supports -fexcess-precision=standard, for CFLAGS... yes

checking whether g++ supports -fexcess-precision=standard, for CXXFLAGS... no

checking whether gcc supports -funroll-loops, for CFLAGS_UNROLL_LOOPS... yes

checking whether gcc supports -ftree-vectorize, for CFLAGS_VECTORIZE... yes

checking whether gcc supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... no

checking whether gcc supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS... no

checking whether gcc supports -Wformat-truncation, for NOT_THE_CFLAGS... yes

checking whether gcc supports -Wstringop-truncation, for NOT_THE_CFLAGS... yes

checking whether gcc supports -Wcast-function-type-strict, for NOT_THE_CFLAGS... no

checking whether gcc supports -fvisibility=hidden, for CFLAGS_SL_MODULE... yes

checking whether g++ supports -fvisibility=hidden, for CXXFLAGS_SL_MODULE... yes

checking whether g++ supports -fvisibility-inlines-hidden, for CXXFLAGS_SL_MODULE... yes

checking whether the C compiler still works... yes

checking how to run the C preprocessor... gcc -E

checking for pkg-config... /usr/bin/pkg-config

checking pkg-config is at least version 0.9.0... yes

checking allow thread-safe client libraries... yes

checking whether to build with ICU support... yes

checking for icu-uc icu-i18n... yes

checking whether to build with Tcl... no

checking whether to build Perl modules... no

checking whether to build Python modules... no

checking whether to build with GSSAPI support... no

checking whether to build with PAM support... no

checking whether to build with BSD Authentication support... no

checking whether to build with LDAP support... no

checking whether to build with Bonjour support... no

checking whether to build with SELinux support... no

checking whether to build with systemd support... no

checking whether to build with XML support... no

checking whether to build with LZ4 support... no

checking whether to build with ZSTD support... no

checking for strip... strip

checking whether it is possible to strip libraries... yes

checking for ar... ar

checking for a BSD-compatible install... /usr/bin/install -c

checking for tar... /usr/bin/tar

checking whether ln -s works... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for bison... no

configure: WARNING:

*** Without Bison you will not be able to build PostgreSQL from Git nor

*** change any of the parser definition files.  You can obtain Bison from

*** a GNU mirror site.  (If you are using the official distribution of

*** PostgreSQL then you do not need to worry about this, because the Bison

*** output is pre-generated.)

checking for flex... /usr/bin/flex

configure: using flex 2.6.4

checking for perl... /usr/bin/perl

configure: using perl 5.36.0

checking for a sed that does not truncate output... /usr/bin/sed

checking for grep that handles long lines and -e... /usr/bin/grep

checking for egrep... /usr/bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking whether gcc is Clang... no

checking whether pthreads work with -pthread... yes

checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE

checking whether more special flags are required for pthreads... no

checking for PTHREAD_PRIO_INHERIT... yes

checking pthread.h usability... yes

checking pthread.h presence... yes

checking for pthread.h... yes

checking for strerror_r... yes

checking whether strerror_r returns int... no

checking for main in -lm... yes

checking for library containing setproctitle... no

checking for library containing dlsym... none required

checking for library containing socket... none required

checking for library containing getopt_long... none required

checking for library containing shm_open... none required

checking for library containing shm_unlink... none required

checking for library containing clock_gettime... none required

checking for library containing fdatasync... none required

checking for library containing shmget... none required

checking for library containing backtrace_symbols... none required

checking for library containing pthread_barrier_wait... none required

checking for library containing readline... -lreadline

checking for inflate in -lz... yes

checking for stdbool.h that conforms to C99... yes

checking for _Bool... yes

checking atomic.h usability... no

checking atomic.h presence... no

checking for atomic.h... no

checking copyfile.h usability... no

checking copyfile.h presence... no

checking for copyfile.h... no

checking execinfo.h usability... yes

checking execinfo.h presence... yes

checking for execinfo.h... yes

checking getopt.h usability... yes

checking getopt.h presence... yes

checking for getopt.h... yes

checking ifaddrs.h usability... yes

checking ifaddrs.h presence... yes

checking for ifaddrs.h... yes

checking langinfo.h usability... yes

checking langinfo.h presence... yes

checking for langinfo.h... yes

checking mbarrier.h usability... no

checking mbarrier.h presence... no

checking for mbarrier.h... no

checking sys/epoll.h usability... yes

checking sys/epoll.h presence... yes

checking for sys/epoll.h... yes

checking sys/event.h usability... no

checking sys/event.h presence... no

checking for sys/event.h... no

checking sys/personality.h usability... yes

checking sys/personality.h presence... yes

checking for sys/personality.h... yes

checking sys/prctl.h usability... yes

checking sys/prctl.h presence... yes

checking for sys/prctl.h... yes

checking sys/procctl.h usability... no

checking sys/procctl.h presence... no

checking for sys/procctl.h... no

checking sys/signalfd.h usability... yes

checking sys/signalfd.h presence... yes

checking for sys/signalfd.h... yes

checking sys/ucred.h usability... no

checking sys/ucred.h presence... no

checking for sys/ucred.h... no

checking termios.h usability... yes

checking termios.h presence... yes

checking for termios.h... yes

checking ucred.h usability... no

checking ucred.h presence... no

checking for ucred.h... no

checking readline/readline.h usability... yes

checking readline/readline.h presence... yes

checking for readline/readline.h... yes

checking readline/history.h usability... yes

checking readline/history.h presence... yes

checking for readline/history.h... yes

checking zlib.h usability... yes

checking zlib.h presence... yes

checking for zlib.h... yes

checking for lz4... no

checking for zstd... /usr/bin/zstd

checking for openssl... /usr/bin/openssl

configure: using openssl: OpenSSL 3.0.12 24 Oct 2023 (Library: OpenSSL 3.0.12 24 Oct 2023)

checking whether byte ordering is bigendian... no

checking for inline... inline

checking for printf format archetype... gnu_printf

checking for _Static_assert... yes

checking for typeof... typeof

checking for __builtin_types_compatible_p... yes

checking for __builtin_constant_p... yes

checking for __builtin_unreachable... yes

checking for computed goto support... yes

checking for struct tm.tm_zone... yes

checking for union semun... no

checking for socklen_t... yes

checking for struct sockaddr.sa_len... no

checking for locale_t... yes

checking for C/C++ restrict keyword... __restrict

checking for struct option... yes

checking for z_streamp... yes

checking whether assembler supports x86_64 popcntq... yes

checking for special C compiler options needed for large files... no

checking for _FILE_OFFSET_BITS value needed for large files... no

checking size of off_t... 8

checking size of bool... 1

checking for int timezone... yes

checking for wcstombs_l declaration... no

checking for backtrace_symbols... yes

checking for copyfile... no

checking for getifaddrs... yes

checking for getpeerucred... no

checking for inet_pton... yes

checking for kqueue... no

checking for mbstowcs_l... no

checking for memset_s... no

checking for posix_fallocate... yes

checking for ppoll... yes

checking for pthread_is_threaded_np... no

checking for setproctitle... no

checking for setproctitle_fast... no

checking for strchrnul... yes

checking for strsignal... yes

checking for syncfs... yes

checking for sync_file_range... yes

checking for uselocale... yes

checking for wcstombs_l... no

checking for __builtin_bswap16... yes

checking for __builtin_bswap32... yes

checking for __builtin_bswap64... yes

checking for __builtin_clz... yes

checking for __builtin_ctz... yes

checking for __builtin_popcount... yes

checking for __builtin_frame_address... yes

checking for _LARGEFILE_SOURCE value needed for large files... no

checking how gcc reports undeclared, standard C functions... error

checking for posix_fadvise... yes

checking whether posix_fadvise is declared... yes

checking whether fdatasync is declared... yes

checking whether strlcat is declared... no

checking whether strlcpy is declared... no

checking whether strnlen is declared... yes

checking whether preadv is declared... yes

checking whether pwritev is declared... yes

checking whether F_FULLFSYNC is declared... no

checking for explicit_bzero... yes

checking for getopt... yes

checking for getpeereid... no

checking for inet_aton... yes

checking for mkdtemp... yes

checking for strlcat... no

checking for strlcpy... no

checking for strnlen... yes

checking for pthread_barrier_wait... yes

checking for getopt_long... yes

checking for syslog... yes

checking syslog.h usability... yes

checking syslog.h presence... yes

checking for syslog.h... yes

checking for opterr... yes

checking for optreset... no

checking unicode/ucol.h usability... yes

checking unicode/ucol.h presence... yes

checking for unicode/ucol.h... yes

checking for rl_completion_suppress_quote... yes

checking for rl_filename_quote_characters... yes

checking for rl_filename_quoting_function... yes

checking for append_history... yes

checking for history_truncate_file... yes

checking for rl_completion_matches... yes

checking for rl_filename_completion_function... yes

checking for rl_reset_screen_size... yes

checking for rl_variable_bind... yes

checking test program... ok

checking whether long int is 64 bits... yes

checking for __builtin_mul_overflow... yes

checking size of void *... 8

checking size of size_t... 8

checking size of long... 8

checking alignment of short... 2

checking alignment of int... 4

checking alignment of long... 8

checking alignment of double... 8

checking for int8... no

checking for uint8... no

checking for int64... no

checking for uint64... no

checking for __int128... yes

checking for __int128 alignment bug... ok

checking alignment of PG_INT128_TYPE... 16

checking for builtin __sync char locking functions... yes

checking for builtin __sync int32 locking functions... yes

checking for builtin __sync int32 atomic operations... yes

checking for builtin __sync int64 atomic operations... yes

checking for builtin __atomic int32 atomic operations... yes

checking for builtin __atomic int64 atomic operations... yes

checking for __get_cpuid... yes

checking for __cpuid... no

checking for _mm_crc32_u8 and _mm_crc32_u32 with CFLAGS=... yes

checking for __crc32cb, __crc32ch, __crc32cw, and __crc32cd with CFLAGS=... no

checking for __crc32cb, __crc32ch, __crc32cw, and __crc32cd with CFLAGS=-march=armv8-a+crc... no

checking which CRC-32C implementation to use... SSE 4.2

checking for library containing sem_init... none required

checking which semaphore API to use... unnamed POSIX

checking which random number source to use... /dev/urandom

checking for /dev/urandom... yes

checking for xmllint... /usr/bin/xmllint

checking for xsltproc... /usr/bin/xsltproc

checking for fop... no

checking for dbtoepub... no

checking whether gcc supports -Wl,--as-needed, for LDFLAGS... yes

checking whether gcc supports -Wl,--export-dynamic, for LDFLAGS_EX_BE... yes

configure: using compiler=gcc (GCC) 12.2.1 20221121 (Anolis OS 12.2.1-2)

configure: using CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2

configure: using CPPFLAGS= -D_GNU_SOURCE

configure: using LDFLAGS=  -Wl,--as-needed

configure: creating ./config.status

config.status: creating GNUmakefile

config.status: creating src/Makefile.global

config.status: creating src/include/pg_config.h

config.status: creating src/include/pg_config_ext.h

config.status: creating src/interfaces/ecpg/include/ecpg_config.h

config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s

config.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.c

config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c

config.status: linking src/include/port/linux.h to src/include/pg_config_os.h

config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

-------------------------------------------------------------------------------

2.3 编译

make

make install

3.创建数据库

3.1 配置环境变量

su – postgres

cat >>  ~/.bash_profile <<"EOF"

export PGPORT=5432

export PGDATA=/postgresql/pgdata

export PGHOME=/postgresql/pg16

export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

export PATH=$PGHOME/bin:$PATH:.

export PGHOST=$PGDATA

export PGUSER=postgres

export PGDATABASE=postgres

export PGCLIENTENCODING=GBK

EOF

3.2 .安装语言包

[root@dbserver1 postgresql-16.1]# yum install glibc-common langpacks-zh_CN glibc-langpack-zh glibc-locale-source

3.3 .支持中文

修改/etc/locale.conf配置

 原配置:    LANG="en_US.UTF-8"

修改为:    LANG="zh_CN.UTF-8"

输入:      source /etc/locale.conf

3.4. 初始化

[postgres@dbserver1 ~]$ export LANG=zh_CN.gbk

[postgres@dbserver1 ~]$ /postgresql/pg16/bin/initdb -D /postgresql/pgdata -E UTF8 --locale=zh_CN.UTF8 -U postgres

The files belonging to this database system will be owned by user "postgres".

This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.UTF8".

initdb: could not find suitable text search configuration for locale "zh_CN.UTF8"

The default text search configuration will be set to "simple".

Data page checksums are disabled.

fixing permissions on existing directory /postgresql/pgdata ... ok

creating subdirectories ... ok

selecting dynamic shared memory implementation ... posix

selecting default max_connections ... 100

selecting default shared_buffers ... 128MB

selecting default time zone ... Asia/Shanghai

creating configuration files ... ok

running bootstrap script ... ok

performing post-bootstrap initialization ... ok

syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections

initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /postgresql/pg16/bin/pg_ctl -D /postgresql/pgdata -l logfile start

[postgres@dbserver1 ~]$

4.调整参数

4.1 修改数据库基本参数

cat >> /postgresql/pgdata/postgresql.conf << "EOF"

listen_addresses = '*'

port=5432

unix_socket_directories='/postgresql/pgdata'

logging_collector = on

log_directory = 'pg_log'

log_filename = 'postgresql-%a.log'

log_truncate_on_rotation = on

max_connections = 500

shared_buffers = 2GB

EOF

4.2 开放远程访问

cat >> /postgresql/pgdata/pg_hba.conf << "EOF"

# TYPE  DATABASE    USER    ADDRESS       METHOD

host      all       all    0.0.0.0/0        md5

EOF

5.设置服务

5.1 配置系统服务

cat > /etc/systemd/system/PG16.service <<"EOF"

[Unit]

Description=PostgreSQL database server

Documentation=man:postgres(1)

After=network.target

[Service]

Type=forking

User=postgres

Group=postgres

Environment=PGPORT=5432

Environment=PGDATA=/postgresql/pgdata

OOMScoreAdjust=-1000

ExecStart=/postgresql/pg16/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300

ExecStop=/postgresql/pg16/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/postgresql/pg16/bin/pg_ctl reload -D ${PGDATA} -s

KillMode=mixed

KillSignal=SIGINT

TimeoutSec=0

[Install]

WantedBy=multi-user.target

EOF

5.2 加载PG16服务

systemctl daemon-reload

[root@dbserver1 postgresql-16.1]# systemctl daemon-reload

[root@dbserver1 postgresql-16.1]#

5.3 配置自动启动PG

[root@dbserver1 postgresql-16.1]#

[root@dbserver1 postgresql-16.1]# systemctl enable PG16

Created symlink /etc/systemd/system/multi-user.target.wants/PG16.service → /etc/systemd/system/PG16.service.

6. 启动PG

6.1 通过服务方式去启动PG

[root@dbserver1 postgresql-16.1]# systemctl start PG16.service

6.2 确认PG服务

[root@dbserver1 postgresql-16.1]# systemctl status PG16.service

● PG16.service - PostgreSQL database server

     Loaded: loaded (/etc/systemd/system/PG16.service; enabled; preset: disabled)

     Active: active (running) since Mon 2023-11-27 23:45:37 CST; 2s ago

       Docs: man:postgres(1)

    Process: 88748 ExecStart=/postgresql/pg16/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)

   Main PID: 88750 (postgres)

      Tasks: 7 (limit: 9227)

     Memory: 77.4M

        CPU: 122ms

     CGroup: /system.slice/PG16.service

             ├─88750 /postgresql/pg16/bin/postgres -D /postgresql/pgdata -p 5432

             ├─88751 "postgres: logger "

             ├─88752 "postgres: checkpointer "

             ├─88753 "postgres: background writer "

             ├─88755 "postgres: walwriter "

             ├─88756 "postgres: autovacuum launcher "

             └─88757 "postgres: logical replication launcher "

11月 27 23:45:37 dbserver1 systemd[1]: Starting PG16.service - PostgreSQL database server...

11月 27 23:45:37 dbserver1 pg_ctl[88750]: 2023-11-27 23:45:37.799 CST [88750] LOG:  redirecting log output to logging collector process

11月 27 23:45:37 dbserver1 pg_ctl[88750]: 2023-11-27 23:45:37.799 CST [88750] HINT:  Future log output will appear in directory "pg_log".

11月 27 23:45:37 dbserver1 systemd[1]: Started PG16.service - PostgreSQL database server.

7.验证PG

登录PG

[postgres@dbserver1 ~]$ psql -U postgres

psql (16.1)

Type "help" for help.

postgres=#

到此,PG16 源码安装全部执行完。

这篇关于在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/442178

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能