Tôi đang cố gắng tạo cơ sở dữ liệu từ dòng lệnh. Hệ điều hành của tôi là centos và phiên bản postgres là 10.9.
sudo -u postgres psql createdb test
Password for user test:
Tại sao lại hỏi tôi bởi người dùng?
Tôi đang cố gắng tạo cơ sở dữ liệu từ dòng lệnh. Hệ điều hành của tôi là centos và phiên bản postgres là 10.9.
sudo -u postgres psql createdb test
Password for user test:
Tại sao lại hỏi tôi bởi người dùng?
Câu trả lời:
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;
create user testuser; create database testdb;
createdb
là 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 ;
;
CREATE DATABASE FOO
thự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/…
Như một số câu trả lời đã chỉ ra, createdb
là 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ế localhost
bằng tên máy chủ DB chính xác của bạn, 5432
bằng cổng DB chính xác và testdb
bằng tên cơ sở dữ liệu bạn muốn tạo.
Bây giờ psql
có 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 createdb
và psql
các phiên bản 9.4.15
.
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
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB