PSQL 명령을 사용하여 호스트 이름 및 포트 찾기
PSQL을 실행 중이며 펄 애플리케이션을 데이터베이스에 연결하려고 합니다.데이터베이스가 실행 중인 현재 포트 및 호스트를 찾는 명령이 있습니까?
SELECT *
FROM pg_settings
WHERE name = 'port';
이 명령은 사후 포트 번호를 제공합니다.
\conninfo
Postgres가 리눅스 서버에서 실행 중인 경우 다음 명령도 사용할 수 있습니다.
sudo netstat -plunt |grep postgres
OR (우체국장으로 오는 경우)
sudo netstat -plunt |grep postmaster
그리고 당신은 이것과 비슷한 것을 보게 될 것입니다.
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 140/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 140/postgres
이 경우 포트 번호는 5432이며 기본 포트 번호이기도 합니다.
크레딧: 링크
기본 PostgreSQL 포트는5432
데이터베이스가 작동 중인 호스트는 호스팅 공급자가 제공한 것이어야 합니다. 웹 서버를 지정하지 않았다면 동일한 호스트일 것입니다.일반적으로 웹 서버와 데이터베이스 서버가 동일한 호스트에 있다고 가정하면 이는 localhost로 구성됩니다.
select inet_server_addr();
서버의 IP 주소를 제공합니다.
이것은 non-sql 메서드입니다.이미지 자체에 대한 지침이 제공됩니다.정보를 찾을 서버를 선택한 후 단계를 수행합니다.
select inet_server_addr( ), inet_server_port( );
select inet_server_port();
서버의 포트를 제공합니다.
터미널에서 "postgres list cluster"를 간단히 수행할 수 있습니다.
pg_lsclusters
Postgres 버전 번호, 클러스터 이름, 포트, 상태, 소유자, 데이터 디렉토리 및 로그 파일의 위치를 반환합니다.
postgresql 포트는 다음에 정의되어 있습니다.postgresql.conf
파일.
Ubuntu 14.04의 경우 다음과 같습니다./etc/postgresql/9.3/main/postgresql.conf
안에는 다음과 같은 선이 있습니다.
port = 5432
이 번호를 변경하려면 postgresql을 다시 시작해야 합니다.
터미널에서 다음 작업을 수행할 수 있습니다.
\sysloginfo
다음을 사용하여 모든 명령의 전체 목록에 있는 설명서를 읽는 것이 좋습니다.
\?
psql에서 명령을 사용할 수 있습니다.\conninfo
얻게 될 것입니다You are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".
포트 번호를 찾으려면 이 명령을 실행합니다(로컬 호스트에 있다고 가정).
select setting from pg_settings where name='port';
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;
여기에 설명된 psql의 내장 HOST 변수를 사용합니다.
여기에 문서화된 포스트그레스 시스템 정보 기능
service postgresql status
반품: 10/메인(포트 5432): 온라인
Ubuntu 18.04를 실행하고 있습니다.
터미널로 이동하여 입력합니다.
service postgres status
이 경우 포트 "5432"(기본값)에서 실행됩니다.
CentOS 7을 사용하고 있습니다.이게 도움이 되길 바랍니다.
postgresql을 실행 중이라고 하셨기 때문에 다음과 같이 가정하겠습니다.
- 당신은 리눅스를 사용하고 있습니다.
- 슈퍼 사용자 권한을 가진 계정이 하나 이상 있거나 postgres 역할에 액세스할 수 있습니다.
- (재미로) 데이터베이스 자체에서 단일 트랜잭션 내에서 두 값에 모두 액세스해야 합니다.
SQL 코드 */
CREATE TEMP TABLE tmp ( hostname text, port bigint ) ON COMMIT DROP;
COPY tmp FROM PROGRAM $pgm$ printf "$HOSTNAME\t$(i=1 && until [[ "$(psql -U postgres -p $i -qt -c "SELECT 'true'" 2>/dev/null | sed -e '$d' | xargs | tr -d "\n")" == "true" ]]; do i=$(($i+1)) && if [ $i == "65535" ]; then break ; fi ; done && echo $i)"$pgm$ ( format 'text', delimiter '\t' );
SELECT host, port FROM tmp;
$pgm$로 구분된 코드를 셸 스크립트로 실행하고 값을 서버 측 COPY API의 stdin으로 반환하는 두 가지를 모두 제공합니다.서버측 셸을 호출하려면 이 메서드에 테이블 대상이 필요합니다.
만약 당신이 temp 테이블 없이 호출할 수 있어야 한다면, 즉 함수 호출로서 위의 셸을 plsh 언어로 구현해 보세요.
내 생각엔 포스트그레SQL은 서버의 호스트 이름을 가져오기 위한 내장 함수를 제공하지 않았기 때문에 서버에서 정보를 가져오기 위해 확장자를 작성해야 할 수 있습니다.
저는 포스트그레가 있다는 것을 발견했습니다.서버에서 호스트 이름을 가져올 수 있는 SQL 확장 pg-hostname.
하고 확을설해확활장성다고하통음화을정있다수쿼습니리할보해로 할 수 .inet_server_port
&hostname
기능.
CREATE EXTENSION hostname;
SELECT hostname(),inet_server_port();
@a_horse_with_no_name 답변에 추가됩니다.호스트 이름 가져오기
SELECT boot_val,reset_val FROM pg_settings WHERE name='listen_addresses';;
저는 그런 해결책을 사용합니다.플러그인이 필요하지 않습니다.임시 테이블은 필요하지 않습니다.unix에만 해당됩니다.
select pg_read_file('/etc/hostname') as hostname, setting as port from pg_settings where name='port';
SQL 서버를 마우스 오른쪽 버튼으로 클릭합니다.내 것은 포스그레스SQL 13을 선택하고 속성 -> 연결을 선택합니다.이 기능은 다음과 같습니다.
- 호스트 이름
- 포트 ID
- 사용자 이름.
언급URL : https://stackoverflow.com/questions/5598517/find-the-host-name-and-port-using-psql-commands
'it-source' 카테고리의 다른 글
Gem 파일에서 로컬 보석을 지정하려면 어떻게 해야 합니까? (0) | 2023.06.06 |
---|---|
ASP.NET: HTTP 오류 500.19 – 내부 서버 오류 0x8007000d (0) | 2023.06.06 |
루비에서 중복 키를 덮어쓰지 않고 두 개의 해시를 병합하려면 어떻게 해야 합니까? (0) | 2023.06.05 |
"꺼짐" 상태에서 UIS 스위치 색상 변경 (0) | 2023.06.05 |
postgre의 기존 테이블에 대해 "create table" sql 문을 생성하는 방법SQL (0) | 2023.06.05 |