CentOS6系にPostgreSQL9.4をインストールした際のメモ
久しぶりにPostgreSQLを使用する機会が発生したのでメモ。
・CentOS release 6.9 (Final)
・PostgreSQL 9.4
# リポジトリの追加 # wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-3.noarch.rpm # yum localinstall pgdg-centos94-9.4-3.noarch.rpm # インストール # yum install postgresql94-server.x86_64 postgresql94.x86_64 postgresql94-libs.x86_64 # データベースの初期化 # service postgresql-9.4 initdb Initializing database: [ OK ] # サービス起動 # service postgresql-9.4 start Starting postgresql-9.4 service: [ OK ] # パスワード設定 # su - postgres -bash-4.1$ psql psql (9.4.12) Type "help" for help. postgres=# alter user postgres with password '*****'; ALTER ROLE postgres=# \q # postgresql.confの設定 # vi /var/lib/pgsql/8.4/data/postgresql.conf # --- postgresqlの時刻合わせ timezone = 'Asia/Tokyo' # --- 他からのアクセスを許可 listen_addresses = '*' port = 5432 # pg_hba.confの設定 # vi var/lib/pgsql/9.4/data/pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.56.0/24 trust # IPv6 local connections: host all all ::1/128 ident
ポート5432を開くためにiptablesを編集
#iptablesに追加 -A INPUT -p tcp --dport 5432 -j ACCEPT
iptablesを再起動
# /etc/rc.d/init.d/iptables restart
データベースの作成とテーブル作成とユーザー権限について
--ユーザー作成 CREATE ROLE webrole LOGIN; CREATE ROLE nobody LOGIN; --データベース作成 CREATE DATABASE testdb WITH TEMPLATE = template0 ENCODING = 'UTF8'; ALTER DATABASE testdb OWNER TO webrole; --テーブル作成 CREATE TABLE t_img_vote ( id serial NOT NULL, -- シーケンス pen_nm character varying(256), -- ペンネーム illust_nm character varying(128), -- 作品名 email character varying(256), -- メールアドレス open_flg boolean NOT NULL DEFAULT false, -- 公開フラグ(0:非公開 1:公開) img_nm character varying(256), -- 画像ファイル名 ip_addr character varying(64), -- IPアドレス vote_at timestamp without time zone DEFAULT now(), -- 投稿日時 created_at timestamp without time zone DEFAULT now(), -- 作成日時 update_at timestamp without time zone DEFAULT now(), -- 更新日時 CONSTRAINT t_img_vote_pkey PRIMARY KEY (id) ) WITH ( OIDS=FALSE ); ALTER TABLE t_img_vote OWNER TO webrole; COMMENT ON COLUMN t_img_vote.id IS 'シーケンス'; COMMENT ON COLUMN t_img_vote.pen_nm IS 'ペンネーム'; COMMENT ON COLUMN t_img_vote.illust_nm IS '作品名'; COMMENT ON COLUMN t_img_vote.email IS 'メールアドレス'; COMMENT ON COLUMN t_img_vote.open_flg IS '公開フラグ(0:非公開 1:公開)'; COMMENT ON COLUMN t_img_vote.img_nm IS '画像ファイル名'; COMMENT ON COLUMN t_img_vote.ip_addr IS 'IPアドレス'; COMMENT ON COLUMN t_img_vote.vote_at IS '投稿日時'; COMMENT ON COLUMN t_img_vote.created_at IS '作成日時'; COMMENT ON COLUMN t_img_vote.update_at IS '更新日時'; CREATE INDEX idx1 ON t_img_vote USING btree (open_flg); CREATE INDEX idx2 ON t_img_vote USING btree (img_nm); --権限設定 ALTER TABLE t_img_vote OWNER TO webrole; GRANT ALL ON TABLE t_img_vote TO webrole; GRANT SELECT,UPDATE ON TABLE t_img_vote_id_seq TO nobody; GRANT SELECT,INSERT ON TABLE t_img_vote TO nobody;
hacknote.jp
qiita.com
qiita.com
http://rina.jpn.ph/~rance/linux/postgresql/connect.html