ฉันกำลังพยายามสร้างฐานข้อมูลจากบรรทัดคำสั่ง ระบบปฏิบัติการของฉันคือ centos และเวอร์ชัน postgres คือ 10.9
sudo -u postgres psql createdb test
Password for user test:
ทำไมต้องถามฉันโดยผู้ใช้
ฉันกำลังพยายามสร้างฐานข้อมูลจากบรรทัดคำสั่ง ระบบปฏิบัติการของฉันคือ centos และเวอร์ชัน postgres คือ 10.9
sudo -u postgres psql createdb test
Password for user test:
ทำไมต้องถามฉันโดยผู้ใช้
คำตอบ:
เปลี่ยนผู้ใช้เป็น postgres:
su - postgres
สร้างผู้ใช้สำหรับ Postgres
$ createuser testuser
สร้างฐานข้อมูล
$ createdb testdb
ใช้กับ postgres Shell
psql ( enter the password for postgressql)
ให้สิทธิพิเศษแก่ผู้ใช้ postgres
$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;
create user testuser; create database testdb;
ลอง:
sudo -u postgres psql -c 'create database test;'
sudo -u postgres psql -c 'grant all privileges on database test to username;'
createdb
เป็นยูทิลิตี้บรรทัดคำสั่งที่คุณสามารถเรียกใช้จาก bash ไม่ใช่จาก psql ในการสร้างฐานข้อมูลจาก psql ให้ใช้คำสั่งสร้างฐานข้อมูลดังนี้:
create database [databasename];
หมายเหตุ: อย่าลืมปิดท้ายคำสั่ง SQL ของคุณด้วย ;
;
CREATE DATABASE FOO
foo
ฉันใช้เวลาประมาณ 5 นาทีในการค้นหาว่าทำไม "ฐานข้อมูลไม่มีอยู่" ดู: stackoverflow.com/questions/43111996/…
ดังที่บางคำตอบชี้ให้เห็นcreatedb
คือยูทิลิตี้บรรทัดคำสั่งที่สามารถใช้ในการสร้างฐานข้อมูล
สมมติว่าคุณมีชื่อผู้ใช้dbuser
คำสั่งต่อไปนี้สามารถใช้เพื่อสร้างฐานข้อมูลและให้การเข้าถึงdbuser
:
createdb -h localhost -p 5432 -U dbuser testdb
แทนที่localhost
ด้วยชื่อโฮสต์ DB ที่ถูกต้องของคุณ5432
ด้วยพอร์ต DB ที่ถูกต้องและtestdb
ด้วยชื่อฐานข้อมูลที่คุณต้องการสร้าง
ตอนนี้psql
สามารถใช้เพื่อเชื่อมต่อกับฐานข้อมูลที่สร้างขึ้นใหม่นี้:
psql -h localhost -p 5432 -U dbuser -d testdb
ทดสอบด้วยcreatedb
และรุ่นpsql
9.4.15
ตามการกำหนดค่าเริ่มต้นของ Postgres ผู้ใช้ที่เรียกว่าpostgresจะถูกสร้างขึ้นและผู้ใช้postgresมีสิทธิ์เข้าถึงผู้ดูแลระบบขั้นสูงแบบเต็มไปยังอินสแตนซ์ PostgreSQL ทั้งหมดที่ทำงานบนระบบปฏิบัติการของคุณ
sudo -u postgres psql
คำสั่งดังกล่าวทำให้คุณได้รับอินเทอร์เฟซบรรทัดคำสั่ง psql ในโหมดผู้ดูแลระบบ
กำลังสร้างผู้ใช้
sudo -u postgres createuser <username>
การสร้างฐานข้อมูล
sudo -u postgres createdb <dbname>
หมายเหตุ: ห้ามใช้ <> ในขณะที่เขียนคำสั่ง แต่จะใช้เพื่อแสดงความหมายของตัวแปร
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB