ミントubuntuにpostgres 8.4の新規インストールを行いました。 postgresのユーザーを作成し、psqlを使用してログインするにはどうすればよいですか?
Psqlと入力すると、それだけで通知されます
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
使用できる方法は2つあります。両方ともユーザーの作成が必要ですandデータベース。
デフォルトでは、psqlはユーザーと同じ名前でデータベースに接続します。そのため、「ユーザーのデータベース」を作成する規則があります。また、ユーザーがデータベースを1つだけ必要とする場合は、この規則を破る理由はありません。サンプルのデータベース名としてmydatabase
を使用します。
createuserとcreatedbを使用、データベース名を明示することができます。
$ Sudo -u postgres createuser -s $USER
$ createdb mydatabase
$ psql -d mydatabase
おそらくそれを完全に省略し、代わりにすべてのコマンドのデフォルトをユーザーの名前にする必要があります。
$ Sudo -u postgres createuser -s $USER
$ createdb
$ psql
SQL管理コマンドを使用し、TCPを介してパスワードで接続する
$ Sudo -u postgres psql postgres
そして、psqlシェルで
CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;
その後、ログインして、
$ psql -h localhost -d mydatabase -U myuser -p <port>
ポートがわからない場合は、postgres
ユーザーとして次を実行することでいつでも取得できます。
SHOW port;
または、
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
postgres
ユーザーpostgres
ユーザーを変更することをお勧めします[〜#〜] not [〜#〜]。
postgres
としてオペレーティングシステムに「ログイン」することは想定されていません。 postgres
として認証を取得するには、ルートが必要です。postgres
に相当するPostgreSQLであるSA
としてログインするには、基礎となるデータファイルへの書き込みアクセスが必要であることを意味します。そして、それはあなたがとにかく大混乱を通常破ることができることを意味します。デフォルトでは、postgresユーザーを使用する必要があります。
Sudo -u postgres psql postgres
取得しているエラーは、your-ubuntu-usernameが有効なPostgresユーザーではないためです。
使用するデータベースユーザー名をpsqlに伝える必要があります
psql -U postgres
接続するデータベースを指定する必要がある場合もあります
psql -U postgres -d <dbname>
「通常の」ユーザー(postgresではない)としてデータベースに接続することもできます。
postgres=# \connect opensim Opensim_Tester localhost;
Password for user Opensim_Tester:
You are now connected to database "opensim" as user "Opensim_Tester" on Host "localhost" at port "5432"
データベースクライアントがTCP/IPで接続し、pg_hba.confでident authが設定されている場合、identdがインストールされ実行されていることを確認してください。 「localhost」に接続するローカルクライアントのみがある場合でも、これは必須です。
また、Postgresqlがlocalhostに接続するクライアントを歓迎するためには、今日ではidentdが IPv6対応 である必要があることに注意してください。