• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pgAdmin3でDB作成時のcollationについて。)

pgAdmin3でDB作成時のcollationについて

このQ&Aのポイント
  • pgAdmin3でDB作成時にコーレーションと文字型が選べない問題が発生しています。
  • Linux上で動作するPotGreSQLをWindows7上のpgAdmin3から操作しています。
  • 設定漏れが原因かもしれず、調査中です。ご存知の方、ご教授いただけませんでしょうか。

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

  • ベストアンサー
  • yamada59
  • ベストアンサー率74% (29/39)
回答No.1

コレーション(lc_collate)と文字型(lc_ctype)は PostgreSQL 8.3 まではデータベースクラスタの作成時にしか指定できないので、pgAdmin III でデータベースの作成時に選択できないようになっているものと考えられます。

hh28868
質問者

お礼

ご指摘どおりです。 私が参照していた手順書には、initdb を実施する手順が入っていませんでした。 initdb実施後、正しく動作いたしました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SJISのDBは作れますか?

    下記バージョンでSJISでDBを作ることは可能でしょうか? CREATE DATABASE sjis WITH ENCODING 'SJIS' ってやったらエラーになりました。 PostgreSQL 8.1.4 又は PostgreSQL 8.0.4

  • PostgreSQL 8.0.2 の ERROR: relation does not exist.

    エラーの詳細は以下のとおりです。 まず、ダウンロード後解凍したpostgresql-8.0-ja.msiを ダブルクリックして、Windows2000serverSP4 に postgreSQL8.02 をインストールしました。 このときユーザpostgreも新規作成しました。 つぎに、ツールpgAdmin3を使用して上記postgreユーザで データベースtemplate1のpublicスキームの中に、 ID(int4), Book(text)の2フィールド、IDフィールドをキーとして、 tblBooksという名称の練習用の簡単なテーブルを作成しました。 さらに、pgAdmin3を使用して、このtblBooksテーブルに適当なレコードも4件追加でき、 pgAdmin3のテーブルビューで追加したこのレコード4件を確認できました。 また、pgAdmin3のクエリツールを用いて、クエリの下記を実行すると 正常に実行してくれます。 select version(); "PostgreSQL 8.0.2 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special)" ところが、上で作成したtblBooksテーブルを含めたクエリを実行させると、 何回やっても次のようなエラーとなります。 select * from tblBooks; ERROR: relation "tblbooks" does not exist.------(1) pgAdmin3でなく、ツールpgSQLを使っても同じエラー(1)がでます。 この"relation does not exist"とは一体どんなエラーなんでしょうか? 環境は, Windows 2000 Server SP4 で、 template1,tblBooksは次のようになっています。 CREATE DATABASE template1 WITH OWNER = postgres ENCODING = 'EUC_JP' TABLESPACE = pg_default; GRANT ALL ON DATABASE template1 TO postgres; CREATE TABLE "tblBooks" ( "ID" int4 NOT NULL, "Book" text, CONSTRAINT "key" PRIMARY KEY ("ID") ) WITHOUT OIDS;

  • PostgreSQLで外部DB内のテーブル参照方法を教えてください

    PostgreSQLで別データベースのテーブルを参照することはできますか? 仮に以下のデータベースが2つあるとします CREATE DATABASE common_db ... CREATE DATABASE app1_db ... app1_db に接続した状態で common_db のテーブルを参照することはできますか? 仮にcommon_dbに郵便番号テーブル postcodeがあるとします CREATE TABLE postcode ( postcode text, --郵便番号 pref_name text, -- 県名  ・・・ ) このpostcodeテーブルをapp1_dbに接続した状態で参照するには、どのような参照クエリになりますか? ご教授の程よろしくお願います。 そもそもできないのでしょうか?

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

    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 というエラーメッセージが表示されます。

  • 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)

    ●質問の主旨 下記のサイトを見ながら、データベースのテーブルを インポートしようとしていますが、エラーが出ます。 この場合、phpmyadminのどこを確認すればよいでしょうか? ご存知の方、ご教示願います。 http://www.dbonline.jp/phpmyadmin/export-import/index3.html ●開発環境 windows8 xammp1.8.1 ●エラーの内容(添付画像) エラー 実行した SQL: -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL のメッセージ: #1007 - Can't create database 'mydb10'; database exists ●インポートの内容(mydb.sql) -- phpMyAdmin SQL Dump -- version 3.5.2.2 -- http://www.phpmyadmin.net -- -- ホスト: 127.0.0.1 -- 生成日時: 2013 年 4 月 20 日 08:27 -- サーバのバージョン: 5.5.27 -- PHP のバージョン: 5.4.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mydb10`; -- -------------------------------------------------------- -- -- テーブルの構造 `db10` -- CREATE TABLE IF NOT EXISTS `db10` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `address` text NOT NULL, `tel` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- テーブルのデータのダンプ `db10` -- INSERT INTO `db10` (`id`, `name`, `address`, `tel`) VALUES (1, 'あああ', 'いいい', '111'), (2, 'ううう', 'えええ', '222'), (3, 'おおお', 'かかか', '333'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    • ベストアンサー
    • MySQL
  • Linux上のpostgreSQLデータをWindowsでみたい

    サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out  サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out   (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが  テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。

  • 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で検索をすると濁点や半濁点もヒットしてしまいます。 「%カルヒ」で、「カルビスープ」も「カルピス」もヒットしてしまいます。 データべースは下記の通り作成しました。 CREATE DATABASE testdb WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'Japanese_Japan.932' LC_CTYPE = 'Japanese_Japan.932' PostgreSQLにて検索で濁点や半濁点をヒットさせない方法はありますか?

  • postgresにクライアントpcから接続できない。

    いつもお世話になっております。 社内にテスト環境を作成しようと、CentOS 5 にpostgres8.4.0をインストールした所、そのサーバ自体からは、dbの作成、tableの作成等sqlの発行は出来るのですが、同じネットワークのwindowsクライアントマシンからpgAdminIIIで接続しようとした所、左下に "データベースに接続...失敗しました"とエラーがでてしまいます。 サーバの設定 "pg_hba.conf"は host all all 192.168.0.0/16 trust を追加(クライアントはこのアドレス内です) "postgresql.conf"は listen_addresses = '*' port = 5432 の行を上記のように変更 CentOSのサーバにはping飛びます。 pgAdminの設定は、 アドレス(サーバIP)、記述(設定名)、DBメンテナンス(DB名)、ユーザー名(postgres)、portはそのまま"5432" で接続しようとしています。 サーバ側のインストール手順は実際に行った手順を書いてましたが、 添付ファイルのような感じです。 どこがいけないか調べるにはどのようにすれば良いでしょうか。 よろしくお願いします。