Tạo cơ sở dữ liệu từ dòng lệnh


Câu trả lời:


144

Thay đổi người dùng thành postgres:

su - postgres

Tạo người dùng cho Postgres

$ createuser testuser

Tạo nên cơ sở dữ liệu

$ createdb testdb

Sử dụng Postgres Shell

psql ( enter the password for postgressql)

Cung cấp các đặc quyền cho người dùng postgres

$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;

21
Quan trọng: createuser và createb được chạy trong shell và KHÔNG chạy với psql.
Kim Kern

20
Nhưng nếu chạy với psql, các lệnh đúng là:create user testuser; create database testdb;
Kiril

63

Thử:

sudo -u postgres psql -c 'create database test;'

8
đừng quên để cấp quyền truy cập cũng như:sudo -u postgres psql -c 'grant all privileges on database test to username;'
lukyer

29

createdblà một tiện ích dòng lệnh mà bạn có thể chạy từ bash chứ không phải từ psql. Để tạo cơ sở dữ liệu từ psql, hãy sử dụng câu lệnh tạo cơ sở dữ liệu như sau:

create database [databasename];

Lưu ý: hãy đảm bảo luôn kết thúc các câu lệnh SQL của bạn bằng ;


2
Thêm một cho gợi ý về việc kết thúc bằng;
Jstuff 27/12/18

Chỉ muốn nhận xét rằng Postgres làm cho UPPERCASE thấp hơn. Vì vậy, CREATE DATABASE FOOthực sự sẽ tạo cơ sở dữ liệu có tên foo. Tôi đã mất 5 phút để tìm ra lý do tại sao "cơ sở dữ liệu không tồn tại". xem: stackoverflow.com/questions/43111996/…
O-9

23

Như một số câu trả lời đã chỉ ra, createdblà một tiện ích dòng lệnh có thể được sử dụng để tạo cơ sở dữ liệu.

Giả sử bạn có một người dùng có tên dbuser, lệnh sau có thể được sử dụng để tạo cơ sở dữ liệu và cung cấp quyền truy cập vào dbuser:

createdb -h localhost -p 5432 -U dbuser testdb

Thay thế localhostbằng tên máy chủ DB chính xác của bạn, 5432bằng cổng DB chính xác và testdbbằng tên cơ sở dữ liệu bạn muốn tạo.

Bây giờ psqlcó thể được sử dụng để kết nối với cơ sở dữ liệu mới được tạo này:

psql -h localhost -p 5432 -U dbuser -d testdb

Đã thử nghiệm với createdbpsqlcác phiên bản 9.4.15.


Đây là cách phù hợp để tạo cơ sở dữ liệu trên một phiên bản mà tôi không thể ssh. Tất cả các nỗ lực chạy "CREATE DB" dưới dạng -c param cho tiện ích psql từ xa đã giả định sự tồn tại của cơ sở dữ liệu có tên giống như người dùng
Gili Garibi

13

Là cấu hình mặc định của Postgres, một người dùng được gọi là postgres được tạo và người dùng postgres có đầy đủ quyền truy cập quản trị viên cấp cao vào toàn bộ phiên bản PostgreSQL đang chạy trên hệ điều hành của bạn.

sudo -u postgres psql

Lệnh trên giúp bạn có giao diện dòng lệnh psql ở chế độ quản trị.

Tạo người dùng

sudo -u postgres createuser <username>

Tạo cơ sở dữ liệu

 sudo -u postgres createdb <dbname>

LƯU Ý: <> không được sử dụng trong khi viết lệnh, chúng được sử dụng chỉ để biểu thị các biến


2
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.