Skip to content

Latest commit

ย 

History

History
431 lines (329 loc) ยท 30.7 KB

Ubutu-postgreSQL.md

File metadata and controls

431 lines (329 loc) ยท 30.7 KB

๋จธ๋ฆฟ๋ง

PostgreSQL์€ ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์œ ์—ฐํ•œ BSD ์Šคํƒ€์ผ ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋œ๋‹ค. PostgreSQL๋Š” ๋งŽ์€ ์ง„๋ณด๋œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋ฉฐ, ๋งค์šฐ ๋น ๋ฅด๊ณ  ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•œ๋‹ค. [](PostgreSQL is a powerful object-relational database management system, provided under a flexible BSD-style license.[1] PostgreSQL contains many advanced features, is very fast and standards compliant.)

PostgreSQL๋Š” C, C++, ํŒŒ์ด์ฌ, ์ž๋ฐ”, PHP, Ruby ๋“ฑ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค๊ณผ ์—ฐ๊ฒฐ๋˜์–ด, ๊ฐ„๋‹จํ•œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋ถ€ํ„ฐ ์ˆ˜๋ฐฑ๋งŒ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊นŒ์ง€ ์–ด๋–ค ๊ฒƒ์ด๋“  ๊ฐ•ํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. [](PostgreSQL has bindings for many programming languages such as C, C+/+, Python, Java, PHP, Ruby... It can be used to power anything from simple web applications to massive databases with millions of records.)

ํด๋ผ์ด์–ธํŠธ๋งŒ ์„ค์น˜ํ•  ๊ฒฝ์šฐ [](Client Installation)

์™ธ๋ถ€์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” PostgreSQL ์„œ๋ฒ„์— ์ ‘์†๋งŒํ•˜๋ ค๊ณ  ํ•˜๋ฉด, PostgreSQL ๋ฉ”์ธ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ๋ง๊ณ , PostgreSQL ํด๋ผ์ด์–ธํŠธ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](If you only wish to connect to an external PostgreSQL server, do not install the main PostgreSQL package, but install the PostgreSQL client package instead. To do this, use the following command)

 sudo apt-get install postgresql-client

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์œผ๋กœ ์™ธ๋ถ€์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•œ๋‹ค. [](you then connect to the server with the following command)

 psql -h server.domain.org database user

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ ํ›„์— ๋ช…๋ น์ค„๋กœ PostgreSQL์— ์ ‘์†ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. [](After you inserted the password you access PostgreSQL with line commands. You may for instance insert the following)

 SELECT * FROM table WHERE 1;

์—ฐ๊ฒฐ ์ข…๋ฃŒ๋Š” ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ํ•œ๋‹ค.[](You exit the connection with)

 \q

๋ฉ”์ธ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

๋กœ์ปฌ์— ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](To install the server locally use the command line and type:)

 sudo apt-get install postgresql postgresql-contrib

๊ทธ๋Ÿฌ๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ์šฐ๋ถ„ํˆฌ ๋ฆด๋ฆฌ์ฆˆ์—์„œ ์ด์šฉ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „ ๋ฆด๋ฆฌ์ฆˆ ๋ฐ ๊ทธ์™€ ํ•จ๊ป˜ ๋„๋ฆฌ ์ด์šฉ๋˜๋Š” ์• ๋“œ์˜จ๋“ค์„ ์„ค์น˜ํ•  ๊ฒƒ์ด๋‹ค. [](This will install the latest version available in your Ubuntu release and the commonly used add-ons for it.) ๋ณด๋‹ค ์ตœ์‹  ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์€ ์ตœํ•˜๋‹จ์˜ ์™ธ๋ถ€ ๋งํฌ๋“ค ํ•ญ๋ชฉ์„ ๋ณด๋ผ. [](See "External Links" below for options for getting newer releases.)

PostGIS, ํ”„๋กœ์‹œ์ € ์–ธ์–ด, ํด๋ผ์ด์–ธํŠธ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ์„ค์น˜ํ•˜๊ธฐ [](Installing PostGIS, procedural languages, client interfaces, etc)

์ถ”๊ฐ€์ ์ธ ํŒจํ‚ค์ง€๋“ค์€ ํ”„๋กœ์‹œ์ € ์–ธ์–ด ๋Ÿฐํƒ€์ž„, PostGIS ๊ฐ™์€ ์• ๋“œ์˜จ, ํŒŒ์ด์ฌ์„ ์œ„ํ•œ psycopg2 ๊ฐ™์€ ์–ธ์–ด ํด๋ผ์ด์–ธํŠธ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ํฌํ•จํ•œ๋‹ค. ์ด๋“ค์˜ ๋ชฉ๋ก์€ ๋‹ค์Œ์˜ ๋ช…๋ น์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. [](Additional packages contain procedural language runtimes, add-ons like PostGIS, language client interfaces like psycopg2 for Python, etc. You can get a listing with:)

 apt-cache search postgres

๊ด€๋ฆฌ

pgAdmin III๋Š” PostgreSQL๋ฅผ ์œ„ํ•œ ์‰ฌ์šด GUI์ด๋ฉฐ, ์ดˆ์‹ฌ์ž์—๊ฒŒ ๋”ฑ์ด๋‹ค. ์„ค์น˜ํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](pgAdmin III is a handy GUI for PostgreSQL, it is essential to beginners. To install it, type at the command line:)

 sudo apt-get install pgadmin3

System>Administration ๋ฉ”๋‰ด์—์„œ Synaptic package manager๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. [](You may also use the Synaptic package manager from the System>Administration menu to install these packages.)

๊ธฐ๋ณธ์ ์ธ ์„œ๋ฒ„ ์„ค์ • [](Basic Server Setup)

์‹œ์ž‘ํ•˜๋ ค๋ฉด, "postgres"๋ผ๋Š” PostgreSQL ์‚ฌ์šฉ์ž(role)์˜ ์•”ํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์™ธ๋ถ€์—์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค. ๋กœ์ปฌ "postgres" ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž๋กœ์จ, psql ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ๋œ๋‹ค. [](To start off, we need to set the password of the PostgreSQL user {role} called "postgres"; we will not be able to access the server externally otherwise. As the local โ€œpostgresโ€ Linux user, we are allowed to connect and manipulate the server using the psql command.)

ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์นœ๋‹ค. [](In a terminal, type:)

sudo -u postgres psql postgres

์ด ๋ช…๋ น์€ ๋กœ์ปฌ ์‚ฌ์šฉ์ž์ธ "postgres"์™€ ๊ฐ™์€ ์ด๋ฆ„์˜ role๋กœ, "postgres"๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(psql ๋ช…๋ น์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž)์— ์—ฐ๊ฒฐํ•œ๋‹ค. "postgres" ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค role์— ๋Œ€ํ•œ ์•”ํ˜ธ ์„ค์ •์€ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](this connects as a role with same name as the local user, i.e. "postgres", to the database called "postgres" {1st argument to psql}. Set a password for the "postgres" database role using the command:)

\password postgres

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์ปค์„œ๊ฐ€ ๊นœ๋ฐ•์ผ ๋•Œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ์•”ํ˜ธ ํ…์ŠคํŠธ๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ์ฝ˜์†”์ฐฝ์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ปจํŠธ๋กค + D๋ฅผ ์น˜๊ฑฐ๋‚˜ \q๋ฅผ ์น˜๋ฉด posgreSQL ์ž…๋ ฅ์ฐฝ์„ ์ข…๋ฃŒํ•œ๋‹ค. [](and give your password when prompted. The password text will be hidden from the console for security purposes. Type Control+D or \q to exit the posgreSQL prompt.)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ [](Create database)

์ฒซ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ„๋‹จํžˆ "mydb"๋ผ๊ณ  ๋งŒ๋“ค๋ ค๋ฉด, ์•„๋ž˜์˜ ๋ช…๋ น์„ ์นœ๋‹ค. [](To create the first database, which we will call "mydb", simply type:)

 sudo -u postgres createdb mydb

Postgresql 8.4 ๋˜๋Š” 9.3 ์ด์ƒ์„ ์œ„ํ•œ (PgAdmin์˜) ์„œ๋ฒ„ Instrumentation ์„ค์น˜ [](Install Server Instrumentation {for PgAdmin} for Postgresql 8.4 or 9.3)

PgAdmin์€ ์™„์ „ํ•˜๊ฒŒ ๊ธฐ๋Šฅํ•˜๋ ค๋ฉด ์• ๋“œ์˜จ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. "adminpack" ์• ๋“œ์˜จ์€, ์„œ๋ฒ„ Instrumentation์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, postgresql-contrib ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ด๋ฏ€๋กœ, ์ด ํŒจํ‚ค์ง€๋ฅผ ๋ฐ˜๋“œ์‹œ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. [](PgAdmin requires the installation of an add-on for full functionality. The "adminpack" addon, which it calls Server Instrumentation, is part of postgresql-contrib, so you must install that package if you haven't already:)

 sudo apt-get install postgresql-contrib

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ "Postgresql 8.4"์— ๋Œ€ํ•œ ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด, adminpack.sql ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ, ์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](Then to activate the extension, for ""Postgresql 8.4"", run the adminpack.sql script, simply type:)

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

"Postgresql 9.3" ์ด์ƒ์—์„œ "postgres" ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— adminpack "ํ™•์žฅ"์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค. [](For "Postgresql 9.3"+ install the adminpack "extension" in the "postgres" database:)

 sudo -u postgres psql
 CREATE EXTENSION adminpack;

๋‹ค๋ฅธ ์„œ๋ฒ„ ์„ค์ • ๋ฐฉ๋ฒ•(์‰ฌ์šด ๋ฐฉ๋ฒ•)

๊ฐ™์€ ์ปดํ“จํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ์„ค์ •์ด ๋” ์‰ฌ์›Œ์ง„๋‹ค. [](If you don't intend to connect to the database from other machines, this alternative setup may be simpler.) ์šฐ๋ถ„ํˆฌ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ, ๊ฐ™์€ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ์—ฐ๊ฒฐ์—๋Š” 'ident sameuser' ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด๋Š” Postgresql ๋ฌธ์„œ๋ฅผ ๋ณด๋ผ. ํ•ต์‹ฌ๋งŒ ๊ฐ„์ถ”๋ฆฌ๋ฉด, ์šฐ๋ถ„ํˆฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด 'foo'์ธ๋ฐ ์ด 'foo'๋ฅผ Postgresql ์‚ฌ์šฉ์ž๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด, ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ ์•”ํ˜ธ๊ฐ€ ํ•„์š” ์—†๋‹ค๋Š” ๋œป์ด๋‹ค. [](By default in Ubuntu, Postgresql is configured to use 'ident sameuser' authentication for any connections from the same machine. Check out the excellent Postgresql documentation for more information, but essentially this means that if your Ubuntu username is 'foo' and you add 'foo' as a Postgresql user then you can connect to the database without requiring a password.) ๊ฐ“ ์„ค์น˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์‚ฌ์šฉ์ž๊ฐ€ "postgres" ์‚ฌ์šฉ์ž ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ •(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜ํผ์œ ์ €)์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์•”ํ˜ธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•œ๋‹ค. [](Since the only user who can connect to a fresh install is the postgres user, here is how to create yourself a database account {which is in this case also a database superuser} with the same name as your login name and then create a password for the user:)

 sudo -u postgres createuser --superuser $USER
 sudo -u postgres psql
 postgres=# \password $USER

($USER๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„์„ ๊ทธ ์œ„์น˜์— ์ง์ ‘ ์ ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค.) ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ, ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์„œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•ด์„œ ๋กœ๊ทธ์ธ ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ผ์„ ์‰ฝ๊ฒŒ ํ•˜๋ ค๋ฉด, ์œ„์—์„œ ๋ถ€์—ฌ๋ฐ›์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒˆ๋กœ์šด ์ˆ˜ํผ์œ ์ € ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ์ธ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ผ. [](Client programs, by default, connect to the local host using your Ubuntu login name and expect to find a database with that name too. So to make things REALLY easy, use your new superuser privileges granted above to create a database with the same name as your login name:)

 sudo -u postgres createdb $USER

์ด์ œ ์—ฌ๋Ÿฌ๋ถ„ ์†Œ์œ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•ด์„œ SQL์„ ๋‚ ๋ ค๋ณด๋Š” ๊ฒƒ์ด ์•„๋ž˜์ฒ˜๋Ÿผ ํŽธํ•ด์ง„๋‹ค. [](Connecting to your own database to try out some SQL should now be as easy as:)

 psql

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์˜ˆ์ œ์ฒ˜๋Ÿผ ์‰ฝ๋‹ค. ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์„œ [](Creating additional database is just as easy, so for example, after running this:)

 create database amarokdb;

์—ฌ๋Ÿฌ๋ถ„์€ ๊ณง๋ฐ”๋กœ ์‚ฌ์šฉ์ž Amarok์—๊ฒŒ ๊ฐ€์„œ postgresql์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ ์Œ์•… ์นดํƒˆ๋กœ๊ทธ๋ฅผ ์ €์žฅํ•˜๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์€ amarokdb๊ฐ€ ๋˜์—ˆ์„ ๊ฒƒ์ด๊ณ , ๊ทธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ์—ฌ๋Ÿฌ๋ถ„ ์†Œ์œ ์˜ ๋กœ๊ทธ์ธ ์ด๋ฆ„์ด ๋˜์—ˆ์„ ๊ฒƒ์ด๋ฉฐ, 'ident sameuser' ๋•๋ถ„์— ์•”ํ˜ธ์กฐ์ฐจ ํ•„์š”๊ฐ€ ์—†์–ด์„œ ์•”ํ˜ธ๋ฅผ ๋น„์›Œ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. [](You can go right ahead and tell Amarok to use postgresql to store its music catalog. The database name would be amarokdb, the username would be your own login name, and you don't even need a password thanks to 'ident sameuser' so you can leave that blank.)

pgAdmin III GUI ์‚ฌ์šฉํ•˜๊ธฐ

PostgreSQL๊ฐ€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ธฐ ์œ„ํ•ด, ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ๋กœ ์‹œ์ž‘ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๋‹ค์Œ์„ ์ž…๋ ฅํ•œ๋‹ค.

 pgadmin3

pgAdmin III ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ณด์—ฌ์งˆ ๊ฒƒ์ด๋‹ค. ์ขŒ์ธก ์ƒ๋‹จ์˜ "Add a connection to a server" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์ž. ์ƒˆ ๋Œ€ํ™”์ฐฝ์—์„œ, ์ฃผ์†Œ 127.0.0.1(๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ ๋น„์›Œ๋‘˜ ์ˆ˜๋„ ์žˆ๋‹ค.), ์„œ๋ฒ„ ์„ค๋ช…, ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์œ„์˜ ์˜ˆ์ œ์—์„œ "mydb"), ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„("postgres")๊ณผ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์ž. pgAdmin III๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ ค๋ฉด ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋” ํ•„์š”ํ•œ๋ฐ, ๊ทธ๊ฒƒ์€ pg_hba.conf ํŒŒ์ผ์„ ๊ณ ์ณ์„œ ์ธ์ฆ ๋ฐฉ์‹์„ peer์—์„œ md5(์•”ํ˜ธ์„ค์ •์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค)๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

์œ„ ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ๋กœ ๋“ค์–ด๊ฐ€์„œ ์•„๋ž˜์˜ ์ค„์„ ์ฐพ์•„์„œ ๊ทธ ์•„๋ž˜์˜ ์ค„๋กœ ๋ฐ”๊พธ์ž.

# Database administrative login by Unix domain socket
local   all             postgres                                peer
# Database administrative login by Unix domain socket
local   all             postgres                                md5

์ด์ œ ์„œ๋ฒ„ ์„ค์ • ๋ณ€๊ฒฝ์„ ์žฌ๋กœ๋”ฉํ•˜๊ณ  pgAdmin III๋ฅผ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜์ž.

sudo /etc/init.d/postgresql reload

์ด GUI๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๊ณ , ์ฟผ๋ฆฌํ•˜๊ณ , SQL์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋ฒ„ ๊ด€๋ฆฌํ•˜๊ธฐ

PostgreSQL ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ผ.

์‚ฌ์šฉ์ž์™€ ๊ถŒํ•œ ๊ด€๋ฆฌํ•˜๊ธฐ

์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋Š” PostgreSQL ๋ฌธ์„œ์˜ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ฑ•ํ„ฐ์—์„œ ์ž์„ธํ•˜๊ฒŒ ๋…ผ์˜ํ•œ๋‹ค. ๋‹ค์Œ์€ ์‹œ์ž‘์„ ์œ„ํ•œ ๋„์ž…๋ถ€์ด๋‹ค. ์‚ฌ์šฉ์ž๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด, ๋จผ์ € /etc/postgresql/current/main/pg_hba.conf ๋ฅผ ์—ด๊ณ  ์ž ๊ฒจ์„œ ๋ณด์•ˆ๋˜๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ ์„ค์ •์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์ด postgres๊ฐ€ ๊ทธ ์†Œ์œ ์˜ ์‚ฌ์šฉ์ž๋“ค(์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž์™€ ๋งํฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค)์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค.

8<-------------------------------------------
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
host    all         all         10.0.0.0       255.255.255.0    md5
8<-------------------------------------------

์œ„ ๋‚ด์šฉ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ(10.0.0.0/24 - ์—ฌ๋Ÿฌ๋ถ„ ์†Œ์œ ์˜ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ต์ฒดํ•œ๋‹ค!)์—์„œ, postgres ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ๊ณ ์ „์ ์ธ ์‚ฌ์šฉ์ž/์•”ํ˜ธ ์Œ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ฒŒ ํ—ˆ์šฉํ•˜๋Š” ์ด์™ธ์—, PostgreSQL์ด ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋“ค๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์„ ๊ฐ์ง€(Listen)ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿด๋ ค๋ฉด, /etc/postgresql/current/main/postgresql.conf๋ฅผ ์—๋””ํ„ฐ๋กœ ์—ด๊ณ  listen_addresses๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•œ๋‹ค.

listen_addresses = '*'

์œ„ ํ‘œํ˜„์€ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋“ค๋ถ€ํ„ฐ ํŒจํ‚ท์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. listen_addresses์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ผ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์™„์ „ํ•œ ๊ถŒํ•œ์„ ๊ฐ–๋Š” ์‚ฌ์šฉ์ž๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด, ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

sudo -u postgres createuser -D -A -P myuser
sudo -u postgres createdb -O myuser mydb

์ฒซ๋ฒˆ์งธ ๋ช…๋ น์ค„์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ๊ถŒํ•œ์ด ์—†๊ณ (-D) ์‚ฌ์šฉ์ž ๊ถŒํ•œ ์ถ”๊ฐ€ ๊ถŒํ•œ(-A)๋„ ์—†๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ์ปค์„œ(-P)๊ฐ€ ์—ด๋ฆด ๊ฒƒ์ด๋‹ค. ๋‘๋ฒˆ์งธ ๋ช…๋ น์ค„์€ myuser๊ฐ€ ์†Œ์œ ์ž์ธ mydb ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ๋ถ€ํ•ฉํ•  ๊ฒƒ์ด๋‹ค. ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€, ๊ด€๋ จ๋œ manํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ์˜จ๋ผ์ธ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

์„œ๋ฒ„ ์žฌ์‹œ์ž‘ํ•˜๊ธฐ

๋„คํŠธ์›Œํ‚น ์„ค์ • ํ›„์—๋Š” ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๊ฐ€๋™ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ, ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ถ”์ฒœํ•œ๋‹ค.

sudo /etc/init.d/postgresql reload

postgresql.conf์˜ ์–ด๋–ค ์„ค์ • ๋ณ€๊ฒฝ์€ ์™„์ „ํ•œ ์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•œ๋ฐ, ๊ทธ๋Ÿฌ๋ฉด ํ™œ์„ฑ ์—ฐ๊ฒฐ์€ ์ข…๋ฃŒ๋˜๊ณ  ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์€ ์ทจ์†Œ๋˜๊ฒŒ ๋œ๋‹ค.

sudo /etc/init.d/postgresql restart

๋” ์ฝ์„ ๊ฑฐ๋ฆฌ

์—ฌ๋Ÿฌ๋ถ„์ด SQL์— ์นœ์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์ด ๊ฐ•๋ ฅํ•œ ์–ธ์–ด๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ด๋‹ค. ๋น„๋ก PostgreSQL์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”๋ฐ๋Š” ์ด ์–ธ์–ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ง์ด๋‹ค.(๊ฐ„๋‹จํ•œ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ๊ฐ€ ๊ทธ๋ ‡๋‹ค.) PostgreSQL ์›น์‚ฌ์ดํŠธ๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๊ด€ํ•œ ํ’๋ถ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ํŠนํžˆ๋‚˜ ํŠœํ† ๋ฆฌ์–ผ์€ ์‹œ์ž‘์— ์œ ์šฉํ•˜๋‹ค. ์ด๋ฏธ ์šฐ๋ถ„ํˆฌ ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด PostgreSQL๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

์žฅ์•  ๋Œ€์‘ํ•˜๊ธฐ

fe_sendauth: no password supplied

์—ฌ๋Ÿฌ๋ถ„์˜ pg_hba.conf๊ฐ€ md5 ์ธ์ฆ์ด ์›๋ณธ ํ˜ธ์ŠคํŠธ, ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•, ์š”์ฒญ๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ธฐ๋ฐ˜ํ•œ ์—ฐ๊ฒฐ์— ์‚ฌ์šฉ๋˜๊ฒŒ ๋ช…์‹œํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ๋ถ„์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•”ํ˜ธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๋‹ค. ์ธ์ฆ ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์˜ ์•”ํ˜ธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์—ฌ๋Ÿฌ๋ถ„์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ ์„ค์ •์— ๊ทธ ์•”ํ˜ธ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

FATAL: role "myusername" does not exist

๊ธฐ๋ณธ์ ์œผ๋กœ PostgreSQL๋Š” ํ˜„์žฌ ์œ ๋‹‰์Šค ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ PostgreSQL ์‚ฌ์šฉ์ž๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ทธ ์ด๋ฆ„์œผ๋กœ PostgreSQL ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. ์ ์ ˆํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ์—ฐ๊ฒฐ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๋ช…์‹œํ•œ๋‹ค. ๋ช…๋ น์ค„ ๋„๊ตฌ์—์„œ -U ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ด๊ฒƒ์„ ํ•œ๋‹ค.

FATAL: database "myusername" does not exist

๊ทธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ์กด์žฌํ•˜๋Š”๋ฐ, ๊ทธ ์ด๋ฆ„์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ PostgreSQL๋Š” ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์™€ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋˜๊ฐ€, ์•„๋‹ˆ๋ฉด ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

FATAL: Peer authentication failed for user "myusername"

์—ฌ๋Ÿฌ๋ถ„์ด ์œ ๋‹‰์Šค ์†Œ์ผ“์œผ๋กœ ๋กœ์ปฌํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค. ์‚ฌ์šฉ์ž "myusername"์ด ์ด๋ฏธ ์กด์žฌํ•˜์ง€๋งŒ ์œ ๋‹‰์Šค ์‚ฌ์šฉ์ž ์ค‘์—๋Š” ๊ทธ์™€ ๊ฐ™์€ ์ด๋ฆ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์—†๋‹ค. PostgreSQL๋Š” ์‚ฌ์šฉ์ž/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฝค๋ณด๋ฅผ ์œ„ํ•˜์—ฌ ์œ ๋‹‰์Šค ์†Œ์ผ“์— peer ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ์„ค์ •๋˜๋Š”๋ฐ ๊ทธ๋Ÿฌ๋ฉด ์œ ๋‹‰์Šค ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ PostgreSQL ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด ์ผ์น˜ํ•  ๊ฒƒ์ด ์š”๊ตฌ๋œ๋‹ค.

์›ํ•˜๋Š” PostgreSQL ์‚ฌ์šฉ์ž์™€ ์ผ์น˜ํ•˜๋Š” ์œ ๋‹‰์Šค ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ--์•„๋งˆ๋„ sudo -u ๊ทธ์‚ฌ์šฉ์ž์ด๋ฆ„ psql--ํ•˜๊ฑฐ๋‚˜ pg_hba.conf๋ฅผ ๋ฐ”๊ฟ”์„œ ์ด ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์œ„ํ•˜์—ฌ "md5" ๊ฐ™์€ ๋‹ค๋ฅธ ์ธ์ฆ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

could not connect to server: No such file or directory

์ด๋Ÿฐ ์—๋Ÿฌ๋Š” (์œ ๋‹‰์Šค ์†Œ์ผ“ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ๋ถ„์ด ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•˜๋Š๋ƒ์— ์ขŒ์šฐ๋œ๋‹ค.)

 psql: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

์•„๋ž˜์˜ ๋ช‡ ๊ฐ€์ง€ ๊ฒƒ๋“ค์— ํ•ด๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์„œ๋ฒ„๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค.
  • ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ํด๋ผ์ด์–ธํŠธ libpq์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ ๋‹‰์Šค ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ๊ธฐ๋ณธ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ์ปดํŒŒ์ผ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์„ค์ •์ด ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. PostgreSQL์€ 5432๊ฐ™์€ ํฌํŠธ ๋„˜๋ฒ„๋ฅผ ์†Œ์ผ“ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ ‘๋ฏธ์‚ฌ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์œ ๋‹‰์Šค ์†Œ์ผ“์— TCP/IP ํฌํŠธ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•œ๋‹ค.

์ด๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ ์ œ๊ฑฐํ•œ๋‹ค.

๋จผ์ € ์„œ๋ฒ„๊ฐ€ ๋™์ž‘ ์ค‘์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ์šฐ๋ถ„ํˆฌ์—์„œ๋Š”, ps -u postgres -f๊ฐ€ ์‚ฌ์šฉ์ž postgres๋กœ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค - postgres๋กœ ์ด๋ฆ„๋ถ™์€ ๊ฒƒ๋“ค ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๊ฒƒ์ด๋‹ค.

์ด์ œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. PostgreSQL ์„œ๋ฒ„์˜ ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

๋˜๋Š” ์˜›๋‚  PostgreSQL์—์„œ๋Š”, unix_socket_directory์€ ์ธ์ž์ฒ˜๋Ÿผ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. ์„œ๋ฒ„์˜ ํฌํŠธ๋ฅผ ๋ณด๋ ค๋ฉด(ํฌํŠธ๋Š” TCP/IP์™€ ์œ ๋‹‰์Šค ์†Œ์ผ“ ์–‘์ชฝ์— ์ ์šฉ๋œ๋‹ค)

 sudo -u postgres psql -c "SHOW port;"

์œ ๋‹‰์Šค ์‚ฌ์šฉ์ž postgres๋กœ๋„ psql์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๋ฉด lsof๋กœ ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 $ sudo lsof -U -a -c postgres
 COMMAND   PID     USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
 postgres 6565 postgres    5u  unix 0xffff88005a049f80      0t0 183009 /tmp/.s.PGSQL.5432
 postgres 6566 postgres    1u  unix 0xffff88013bc22d80      0t0 183695 socket
 postgres 6566 postgres    2u  unix 0xffff88013bc22d80      0t0 183695 socket

์ด ๊ฒฝ์šฐ์— ์ฒซ๋ฒˆ์งธ ์ค„์€ ์†Œ์ผ“ ์œ„์น˜์ด๋‹ค. ์ด ์„œ๋ฒ„๋Š” ํฌํŠธ 5432์™€ ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ /tmp๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค๋ฅธ ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์€ ์•„๋งˆ๋„ ๊ธฐ๋ณธ ์†Œ์ผ“ ๊ฒฝ๋กœ์™€(๋˜๋Š”) ๊ธฐ๋ณธ ํฌํŠธ ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ๋ถ„์˜ ํด๋ผ์ด์–ธํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งํฌ๋œ libq๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์ด ์šด์˜์ค‘์ธ PostgreSQL์™€ ๋‹ค๋ฅด๊ฒŒ ์ปดํŒŒ์ผ๋œ ์œ ๋‹‰์Šค ์†Œ์ผ“ ๊ฒฝ๋กœ์™€(๋˜๋Š”) ํฌํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„ ์—ฌ๋Ÿฌ๋ถ„์˜ LD_LIBRARY_PATH๋‚˜ /etc/ld.so.conf๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ PostgreSQL ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒƒ ์ด์ „์— ๋‹ค๋ฅธ libq๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์ธ ์ผ์€ ์•„๋‹Œ๋ฐ, ์—ฌ๋Ÿฌ๋ถ„์€ ๊ทธ๋ƒฅ ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋‹ค.

๋Œ€์ฒด ์†Œ์ผ“ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€/๋˜๋Š” ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ํฌํŠธ๋ฅผ ๋ช…์‹œํ•˜๋ ค๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์˜ ์—ฐ๊ฒฐ ์˜ถ์…˜์— ํ˜ธ์ŠคํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์†Œ์ผ“ dir์„ ๋ช…์‹œํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž bob์œผ๋กœ /tmp์—์„œ ํฌํŠธ 5433์„ ๊ฐ์ง€ํ•˜๋Š” ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

 psql -h /tmp -p 5433 -U bob ...

๋˜๋Š” ์—ฐ๊ฒฐ-๋ฌธ์ž์—ด ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 psql "host=/tmp port=5433 user=bob ..."

libq๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ(๋ชจ๋“  PostgreSQL ํด๋ผ์ด์–ธํŠธ ํˆด๋“ค, ์˜ˆ๋ฅผ ๋“ค๋ฉด, psycopg2, ๋ฃจ๋น„/๋ ˆ์ผ์ฆˆ์˜ Pg gem, PHP์˜ postgres์™€ PDO, ํŽ„์˜ DBB::Pg ๋“ฑ๋“ฑ)์—๋„ ๋˜‘๊ฐ™์ด ์ ์šฉ๋œ๋‹ค. libq ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒƒ๋“ค, PgJDBC, py-postgresql ๋“ฑ์€ ์ ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ, ์ด๋“ค ๋Œ€๋ถ€๋ถ„์€ ์œ ๋‹‰์Šค ์†Œ์ผ“์„ ์ „ํ˜€ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. non-libq ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธใ…Œ๋“ค์— ๋Œ€ํ•œ ๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ ๋ฌธ์„œ๋ฅผ ๋ณด๋ผ.

[1] PostgreSQL์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋ˆ์„ ๋‚ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์ƒ์—…์ ์ธ ๋น„๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. http://www.postgresql.org/about/licence/ ๋ฅผ ๋ณด๋ผ.

์™ธ๋ถ€ ๋งํฌ๋“ค

๊ณต์‹ PostgreSQL ๋‹ค์šด๋กœ๋“œ

PostgreSQL ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€์—์„œ ๊ณต์‹์ ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ๋งํฌ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์šฐ๋ถ„ํˆฌ ์†Œํ”„ํŠธ์›จ์–ด ๋ฆฌํŒŒ์ง€ํ„ฐ๋ฆฌ๋„ ์—ฌ๊ธฐ์— ํฌํ•จ๋œ๋‹ค. ํŠนํžˆ, ์šฐ๋ถ„ํˆฌ ์‚ฌ์šฉ์ž๋Š” apt.postgresql.org์„ ํ†ตํ•˜์—ฌ apt-get์„ ์‚ฌ์šฉํ•จ์œผ๋กœ PostgreSQL ์šฐ๋ถ„ํˆฌ ๋ฆด๋ฆฌ์ฆˆ์— ํŒจํ‚ค์ง•๋œ ๊ฒƒ๋“ค ๋ณด๋‹ค ๋” ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

PostgreSQL์— ๊ด€ํ•œ ์ง€์›๊ณผ ์„œ๋น„์Šค๋Š” ์„œ๋น„์Šค์™€ ์ง€์› ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ผ.

EnterpriseDB

The PostgreSQL Linux downloads page contains a section on "Graphical installer" built by EnterpriseDB. You download the installer, change its properties to allow to run it as command (it has .run extension), and run it from command prompt as in "sudo whateveritwas.run".

You end up with

configured DB server instance, which starts with your server pgAdmin III UI client application Note that the installed software will not be integrated with Ubuntu software center. As a result, you will not receive any security updates from Ubuntu. However, the installed version will closely match the latest Ubuntu version.

Turnkey Linux

An Ubuntu-based PostgreSQL appliance is one of the easiest ways to get up and running with PostgreSQL on Ubuntu. It's part of a family of pre-integrated TurnKey Linux Software Appliances based on Ubuntu 10.04.1 (Lucid LTS).