Postgresql이 수퍼 유저로 "createdb"를 사용하여 db를 생성하지 않지만 오류를 출력하지 않음
나는 'postgres'슈퍼 유저와 함께 새로운 postgresql 설치로 작업하고 있습니다. 다음을 통해 로그인 :
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
오류는 없지만 테이블이 생성되지 않습니다. 어떤 아이디어?
createdb
는 psql이 아닌 bash 에서 실행할 수있는 명령 줄 유틸리티입니다 . psql 에서 데이터베이스를 만들려면 다음 create database
과 같은 문을 사용하십시오 .
create database [databasename];
참고 : 항상 SQL 문을 ;
파티에 늦었지만 수락 된 답변은 오류가 표시되지 않는 이유를 설명하지 않습니다. 그리고 이것은 Postgres 신규 이민자들이 종종 우연히 발견하는 것이므로 추가하고 싶었습니다.
TL / TR : 항상 SQL 문을 ;
가 createdb database
끝나지 않았다고 ;
psql
생각 하기 때문에 문이 완료되지 않았으며 더 많은 입력을 기다립니다. 이는에서 postgres=#
으로 변경되는 프롬프트로 표시됩니다 postgres-#
. 내가 바라는 극히 미묘한 변화 psql
는 다르게 할 것입니다 (더 "눈에 띄는").
메타 명령을 입력하면 \list
"현재"SQL 문이 실행되지 않고 "중단"됩니다.
는 IF createdb
로 종료되었다 ;
출력했을 것이다 :
postgres => createdb foobar; 오류 : "createdb"또는 그 근처에 구문 오류가 있습니다. 행 1 : createdb foobar; ^ postgres =>
뭔가 잘못되었음을 분명히 보여줍니다.
나는 얼마 전에 이런 상황에 처해 있었다. 다른 사람이이 문제를 경험하는 경우 명령 프롬프트 postgres-#
에 단순히 입력 ;
하고 리턴 키 를 입력하여 보류중인 createdb 명령을 실행할 수 있다는 점을 고려하십시오 .
PostgreSQL에서 새 데이터베이스를 만드는 것은 매우 간단합니다. Linux에서 다음 명령을 실행합니다 (CentOS 7 예).
sudo -u postgres psql -c "create database MyDb;"
'IT story' 카테고리의 다른 글
유사 절 JPQL의 매개 변수 (0) | 2020.09.17 |
---|---|
Rails 콘솔 / irb 출력을 억제하는 방법 (0) | 2020.09.17 |
논리 AND 연산자 &&와 함께 Swift if let 사용 (0) | 2020.09.17 |
지원 라이브러리 v21로 업그레이드 한 후 PreferenceActivity에 ActionBar가 없음 (0) | 2020.09.17 |
문자열에 공백이 있는지 확인 (0) | 2020.09.17 |