Cách tạo cơ sở dữ liệu từ người dùng psql (không phải người dùng linux)


0

Tôi đã nghiên cứu một số PostgreSQL. Theo nguyên tắc tôi đã được dạy để tạo một người dùng hậu tố có cùng tên với người dùng linux của tôi.

Bây giờ tôi muốn thử tạo một ứng dụng, và vì lý do này, tôi muốn tạo một người dùng mới liên quan đến cơ sở dữ liệu của ứng dụng. Làm thế nào để làm điều đó?

Tôi đã thử điều này:

  1. sudo -u postgres postgres
  2. postgres = # tạo người dùng myuser bằng mật khẩu 'myuserpassword' createdb;
    TẠO VAI TRÒ

Sau đó, tôi cố gắng truy cập cơ sở dữ liệu template1 với người dùng vừa tạo bằng:

psql template1 myuser

Khi tôi gõ psql template1và sau đó tab, tôi không nhận được "myuser" của người dùng và không biết tại sao.

Cảm ơn vì sự giúp đỡ

Câu trả lời:


1

Khi tôi gõ psql template1 và sau đó là tab, tôi không nhận được "myuser" của người dùng và không biết tại sao.

Đó là tính năng hoàn thành lập trình bash đang chơi ở đây. Dường như psql, tabkhông đề xuất danh sách tên người dùng trên dòng lệnh khi con trỏ ở sau tên cơ sở dữ liệu. Nếu không tạo ra danh sách đó, tuy nhiên, khi con trỏ ở sau -U.

Tuy nhiên, không rõ làm thế nào nó làm phiền bạn để tạo ra một cơ sở dữ liệu.

Giả sử bạn có thể vào trong psql psql template1 myuser, chỉ cần đưa ra lệnh SQL

CREATE DATABASE dbname;

Nếu việc gọi psql đó không thành công, có thể là do chính sách pg_hba.confcho kết nối ổ cắm tên miền Unix là peer. Sẽ có một thông báo lỗi rõ ràng nói như vậy.

Trong trường hợp này, sử dụng psql -U username -h localhost -d template1

Một phương pháp khác là tạo cơ sở dữ liệu từ tài khoản superuser (thông thường postgres) giống như bạn đã tạo người dùng và để lại quyền sở hữu cho người dùng này ( OWNERtùy chọn CREATE DATABASE).

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.