PostgreSQL官网
安装依赖:
1 2 3 4 5
| $ yum -y install readline-devel zlib-devel gcc gcc-c++ zlib readline
$ apt-get install -y gcc make $ apt-get install -y libreadline-dev zlib1g zlib1g.dev
|
安装PostgreSQL:
postgresql-10.3(maybe too
old)
1 2 3 4 5 6 7 8 9 10 11
| $ wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/postgresql-arm/postgresql-10.3.tar.gz $ tar -zxvf postgresql-10.3.tar.gz -C /opt/ $ cd /opt/postgresql-*/ $ ./configure --build=arm-linux --host=arm-linux --prefix=/usr/local/pgsql
$ make && make install && make clean
|
授权用户:
1 2 3
| $ adduser postgres $ chown -R postgres:postgres /usr/local/pgsql $ ls -ld /usr/local/pgsql
|
配置环境变量:
1 2
| $ su postgres $ vim ~/.bash_profile
|
配置文件中加入:
1 2 3
| $ export PGHOME=/usr/local/pgsql $ export PGDATA=/usr/local/pgsql/data $ export PATH=$PATH:$PGHOME/bin
|
执行修改:
1
| $ source ~/.bash_profile && psql -V
|
初始化数据库:
1
| $ initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
|
启动日志服务:
1 2
| $ mkdir -p /usr/local/pgsql/log $ chmod 755 /usr/local/pgsql/log
|
启动数据库:
1
| $ pg_ctl -D $PGDATA -l $PGHOME/log/pg_server.log start
|
检查结果:
1 2
| $ ps -ef | grep "postgres" $ netstat -nlp | grep "postgres"
|
修改数据库密码:
1
| $ psql中`\password postgres`可修改
|
配置为远程访问:
将”listen_addresses=’localhost’”取消注释并修改为任意地址’*’
1
| $ vim /usr/local/pgsql/data/postgresql.conf
|
修改访问地址控制设置:
1
| $ vim /usr/local/pgsql/data/pg_hba.conf
|
在”IPv4 local connections”下构建规则:
1
| host all all 0.0.0.0/0 md5
|
重启生效:
在debian中
基本安装
创建文件/etc/apt/sources.list.d/pgdg.list
,里面添加:
1 2
| deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
|
Import the repository signing key, and update the package lists:
1 2 3 4 5 6 7 8 9
| $ apt-get install -y gnupg gnupg1 gnupg2 $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ apt-get update $ apt-get install -y postgresql-10
$ useradd -m -s /bin/bash postgres $ mkdir /usr/local/pgsql $ chown postgres:postgres /usr/local/pgsql $ sudo -u postgres /usr/lib/postgressql
|
数据库初始化:
1
| $ /usr/lib/postgresql/11/bin/initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
|
vim ~/.bash_profile
配置:
1 2 3 4
| export PGHOME=/usr/local/pgsql export PGDATA=/usr/local/pgsql/data export PATH=$PATH:/usr/lib/postgresql/11/bin export LANG=en_US.utf8
|
数据库日志:
1 2 3
| $ mkdir -p /usr/local/pgsql/log $ chmod 755 /usr/local/pgsql/log
|
- can start data server
1 2 3
| $ /usr/lib/postgresql/11/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start $ pg_ctl -D $PGDATA -l $PGHOME/log/pg_server.log start
|
通过配置文件
启动,vim /etc/sysctl.conf中配置内核相关参数:
1 2 3 4 5 6 7 8
| kernel.shmmni = 4096 kernel.sem = 50100 64128000 50100 1280 fs.file-max = 7672460 net.ipv4.ip_local_port_range = 9000 65000 net.core.rmem_default = 1048576 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmen_max = 1028576
|
vim /etc/sysconfig/iptables
进行防火墙设置:
1 2 3 4 5 6 7 8 9 10 11
| -A RH-Firewall-1-INPUT -i lo -j ACCEPT # 允许源IP -A RH-Firewall-1-INPUT -s 192.168.0.0/16 -j ACCEPT # 允许源IP访问目标端口 -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -m tcp -p tcp --dport [PORT] -j ACCEPT # 允许任意IP访问目标端口 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport [PORT] -j ACCEPT # 不是很懂 # 使用iptables -L -v -n查看出入规则
|
- 在/etc/security/limits.conf配置。。。
vim /usr/local/pgsql/data/pg_hba.conf
中的IPv4 local
connections修改访问地址控制规则设置:
1
| host all all 0.0.0.0/0 md5
|
vim /usr/local/pgsql/data/postgresql.conf
中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 将listen_addresses='localhost'取消注释并修改为任意地址'*0.0.0.0' superuser_reserved_connections超级用户最多连接改为13 unix_socket_directories连接改为'.'根目录下 unix_socket_permissions权限为0700
tcp_keepalives_idle = 60 tcp_keepalives_interval = 10 tcp_keepalives_count = 10
vacuum_cost_delay = 10 bgwritter_delay = 10ms wal_writer_delay = 200ms
hot_standby = on
log_destination = "csvlog" logging_collector = on log_directory = 'pg_log' log_file_mode = 0600 log_truncate_on_rotation = on等
log_checkpoints = on log_connection = on log_disconnections = on log_error_verbosity = verbose
|
启动psql
1 2
| $ pg_ctl -D $PGDATA -l $PGHOME/log/pg_server.log start $ psql -h localhost -U postgres
|