ファイルを用いて一括でテーブルを作成できない

このQ&Aのポイント
  • CSVデータをインポートするためにデータベース'DB名'を作成し、'ファイル名'というファイルをユーザ'ユーザ名'のホームディレクトリに配置した後、'DB名'でログインして、指定のコマンドを実行し、テーブル'テーブル名'を作成しようとしたところエラーが発生しました。
  • PostgreSQLの自動起動設定がされている状態で、データベース'DB名'のオーナーが'オーナー名'の場合、指定のコマンドを実行したところエラーが発生しました。
  • ユーザ'ユーザ名'を用いてデータベース'postgres'にアクセスしようとした場合、エラーが発生しました。
回答を見る
  • ベストアンサー

ファイルを用いて一括でテーブルを作成できない

csvデータをインポートするためにデータベース"database_6"を作成し、"create.sql"というファイルをユーザ"database_6"のホームディレクトリ"database_6"に配置した後、"database_6"でログインして、下記コマンドを実行し、テーブル"music"を作成しようとしたところ、 $ psql -e -f create.sql bash: psql: command not found というエラーメッセージが表示されます。なお、PostgreSQLは自動起動設定されています。"database_6"のOwnerは"postgres"で、下記の書籍に記載された方法(別の方法は何も記載されていない)でデータベース"database_6"を作成しました。 $ createdb database_6 で作成しまいた。そこで、同じく下記の書籍に記載された方法(別の方法は何も記載されていない)でユーザ"database_6"を作成しました。 $ createuser -d -A database_6 なお、ユーザ"postgres"を用いた場合には、 FATAL: database "postgres" does not exist というエラーメッセージが表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.1

bash: psql: command not found は psql コマンドにパスが通ってないだけですね。 FATAL: database "postgres" does not exist は postgres ってデータベースが無いよって言ってます。

Feruza
質問者

お礼

早速の回答ありがとうございます!! 次にテーブルを作成する機会に試してみます。cvsインポートの確認を急ぎたかったため、今回はファイルを用いずに作成してしまいました…。

関連するQ&A

  • createdbでいきなりつまづいております。

    初めまして、データベースを覚えようと、Windows 2000にPostgreSQL8.1を入れて見ました。 まずはテスト用のデータベースを作ろうとユーザー postgres で createdb test;とやると EREOE: syntax error at or near "createdb" at character 1 LINE 1: createdb test; となります。いろいろ試して create database test; で作る事が出来たのですが その test データベースに移動するつもりで psql test; とやると又 ERROR: syntax reeoe at or near "psql" at character 1 LINE 1: psql test; となります。文字コード関係のエラーかな?と、エンコーディングをEUCからutf8に変えて インストールし直して見ましたが同じエラーが出ました。 createdb test;ですんなりtestデータベースを作るためにはどの様にしたらよいのでしょうか? 分かる方がいましたら、よろしくお願いします。

  • createdbができません。

    createdbができません。 PostgreSQLをインストールし、createdbを実行したところ次のようなエラーが出てしまいました。 C:\Program Files\PostgreSQL\8.3\bin>createdb -U postgres test createdb: could not connect to database postgres: FATAL: password authentication failed for user "postgres" 自分で調べてみたところ、-Wでパスワードを打ち込めば良いとあったので 試してみましたが、エラーが createdb: could not connect to database postgres: FATAL: password authentication failed for user "Administrator" となるだけです。どうすればよいのでしょうか。 環境はwindows xpです。 よろしくお願いします。

  • バッチファイル作成

    WindowsにMySQLを入れました。そこに、データベースやテーブルの作成をコマンドプロンプトからではなく、バッチで実行したいのですが、とりあえず、create database。sql と create table のテキストファイルは、作ったものの、どうしたらいいのかわかりません。教えてください。

    • ベストアンサー
    • MySQL
  • csvデータをインポートできない

    書籍にLinux(RedHat8.0)、PostgreSQLのユーザ名とデータベース名とを同一にするように記載されていました。このため、"database_6"というもの作成しました。ところが、テーブル作成、テーブル確認には、データベース接続後、所定のコマンドを実行することで問題はありませんでしたが、インポート時には、 ERROR: could not open file "/home/database_6/database_euc_4.csv" for reading: 許可がありませえん とエラーメッセージが表示されます。そこで、アクセス権限を調べると、 -r-xr-xr-x 1 database_6 database_6 113166 6月 5 19:37 database_euc_4.csv これは、Linuxの"database_6"であって、PostgreSQLの"database_6"ではないと考えられます。どのようにすれば、アクセス権限を変更できるでしょうか?ここでは、同一名称にしたことが、仇になっているようです。こうならないようにするために、同一名称にするのかと思っていましたが…。 ちなみに、database_6のOwnerは"postgres"になっています。"postgres"にアクセス権限を与えるのも1つの方法かと思いますが、インポートを実行しようとすると、 -bash: COPY: command not found とエラーメッセージが表示され、パスが通っていないようです。これは、~/.bash_profileが上手く読み込まれていないということでしょうか?

  • PostgreSQLのpsqlでユーザの扱いがうまくいかない

    こんにちは ただいま、PostgreSQL7.2.3をインストール(Redhat7.3)し、これからpsqlを使い、SQL操作をしようとしていたところですが、psqlと入力すると "psql: FATAL 1: Database "postgres" does not exist in the system catalog."となります。 PostgreSQLのユーザは "postgres","nobody"です。 現在、postgresからpostmaster -Sで起動しています. 下記に端末で行った作業内容をコピーしてみました。 今回インストールの参考にした書籍は"PHPxPostgreSQLで作る最強Webシステム」石井達夫著です。この本の手順に従ったつもりですが、うまくいきません。 [postgres@www root]$ postmaster -S [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ select dtname from php bash: syntax error near unexpected token `from' [postgres@www root]$ select dtname from template0 bash: syntax error near unexpected token `from' [postgres@www root]$ [postgres@www root]$ psql select dtname from php psql: warning: extra option from ignored psql: warning: extra option php ignored psql: FATAL 1: Database "select" does not exist in the system catalog. [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ psql psql: FATAL 1: Database "postgres" does not exist in the system catalog.

  • ユーザー名にアンダーバーを含む場合のデータベース作成について

    ユーザー名にアンダーバーを含む場合のデータベース作成について mysql > create database demo_demo; mysql > grant all on demo_demo.* to demo_demo@localhost 上記のSQL を発行した場合、「demo_demo」というデータベースと、ローカルから「demo_demo」データベースにALL の権限の範囲内でアクセスできる「demo_demo」というユーザーが作成されると思います。ここで2点教えてください。 質問1: ALL権限には「create database」を許可するCREATE権限が含まれますが、上記「demo_demo.* 」のように、grant 時に特定のデータベースに対してのみALL権限を与えた場合の「create database」を許可するCREATE権限とはどういう意味を持つのでしょうか? 質問2: mysql > create database `demotdemo`; など、ユーザー名のアンダーバー部分に任意文字を当てたデータベースが無限に作成できてしまいます。アンダーバーがSQL的に「任意の一文字」に相当するとは理解していますが、「demotdemo」などのデータベースが作成できてしまうのはmysql の仕様でしょうか?また、ユーザーが「create database」可能かでないかの判定はどの権限で制御されているのでしょうか? 参考資料でもよいので教えてください。お願いします。

    • ベストアンサー
    • MySQL
  • initdbの文字コードと違う文字コードでDB作成

    postgres9.0.4でEUCでinitした環境があります。 initdb --encoding=EUC_JP そこにUTF8のDBを作成したいのですが、以下のようなエラーがでます。 psql -U postgres postgres=# CREATE DATABASE dbname postgres-# WITH ENCODING='UTF8' postgres-# OWNER=dbowner postgres-# CONNECTION LIMIT=-1; ERROR: encoding UTF8 does not match locale ja_JP.eucJP DETAIL: The chosen LC_CTYPE setting requires encoding EUC_JP. 既に運用が始まっているEUCのDBが稼動している状態です。 EUCで初期化したところに後からUTF8のDBを作成する方法はないのでしょうか?

  • Mysqlで新たにデータベースを作成する方法を教えてください

    こんにちは。WinMEユーザです。 mysql-3.23.58をWinMEマシンにインストールしました。 なお、インストール方法は、 http://tsuttayo.sytes.net/mysql/install/win/ を参考にして、作業しました。 なおここでは便宜上、インストール時に設定するユーザID、パスワードは、それぞれ「usr」「hoge」と表記します。 DOSプロンプトから、 >mysqladmin create newtable と入力しても、 CREATE DATABASE failed; error: 'Access denied for user: '@localhost' to database 'newtable'' というエラーメッセージが表示されてしまい、データベースを新規作成できません。 どのようにしたらデータベースを新規作成できるのか、 ご教示ください。

  • MySQLでDBが作成できない

    データベースを作ろうと create database sample; をしたところ ERROR 1044 (42000): Access denied for user 'user'@'localhost' to database 'sample' というエラーが出て、データベースが作成できません。 いろいろ探して同じような質問を見つけ、やってみたのですが解決できません・・・。 mysqlには mysql -uuser -p で入っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • ASP.NETからのデータベースの作成

    こんにちは。 SQL SERVER 2005 ExpressとIIS5.0とASP.NET2.0+C#で使っています。 一台のサーバーマシンに、SQL SERVER 2005 ExpressとIIS5.0をインストールした状態なのですが、Webページ上のC#のプログラムよりデータベースを作成しようとすると、 CREATE DATABASE 権限がデータベース 'master' で拒否されました。 と、メッセージが出ます。 要するに権限がないというのはわかるのですが、このようにWebからログインしてきたユーザーに権限を付加することはできるのでしょうか? あるいは、接続文字列かなんかで権限のあるユーザーでログインする、といったことが可能なものでしょうか? 現在は以下のようにして接続、作成を行おうとしています。 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Server=.\\SQLEXPRESS;Integrated security=SSPI"; String strDatabase = "CREATE DATABASE newdatabase"; SqlCommand cmdDatabase = new SqlCommand(strDatabase, conn); conn.Open(); cmdDatabase.ExecuteNonQuery(); conn.Close(); エラーの内容から、SQL SERVERそのものへのアクセスは成功しているように思えます。 よろしくお願いします。