- 论坛徽章:
- 1
|
[i=s] 本帖最后由 crykun 于 2011-11-10 14:09 编辑 [/i]
postgresql initdb ,不能以root帐号运行。应该先su postgres,然后再initdb。
如下:(注意你的安装目录,我的是在/usr/local/pgsql/下)
# su postgres
% /usr/local/pgsql/bin/initdb -E UTF8 -D /usr/local/pgsql/data/
或者
# su postgres -c '/usr/local/pgsql/bin/initdb -E UTF8 -D /usr/local/pgsql/data/'
-D 是指定pg的数据库目录。
-E 是编码为UTF8,好支持中文处理。
下面是我源码安装的脚本,全自动安装。安装好gmake之后,root帐号运行。
先建立一个shell文件,如in-pg.sh 然后chmod +x in-pg.sh
,然后将它复制到 /usr/local/src/postgresql-9.0.4/目录.然后 ./in-pg.sh就搞定了。
#!/bin/sh
# in-pg.sh
./configure --prefix=/usr/local/pgsql
make
make install
make clean
pw useradd postgres
mkdir /usr/local/pgsql/data
mkdir /usr/local/pgsql/log
chown -R postgres /usr/local/pgsql/data
chown -R postgres /usr/local/pgsql/log
su postgres -c '/usr/local/pgsql/bin/initdb -E UTF8 -D /usr/local/pgsql/data/'
#write auto start shell and start.sh.
echo "#!/bin/sh" > /usr/local/etc/rc.d/pgsql.sh
echo "su postgres -c '/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/log.file start'" >> /usr/local/etc/rc.d/pgsql.sh
chmod +x /usr/local/etc/rc.d/pgsql.sh
cp /usr/local/etc/rc.d/pgsql.sh /usr/local/pgsql/start.sh
#write stop shell
echo "#!/bin/sh" > /usr/local/pgsql/stop.sh
echo "su postgres -c '/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/log.file stop'" >> /usr/local/pgsql/stop.sh
chmod +x /usr/local/pgsql/stop.sh
#write restart shell
echo "#!/bin/sh" > /usr/local/pgsql/restart.sh
echo "su postgres -c '/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/log.file restart'" >> /usr/local/pgsql/restart.sh
chmod +x /usr/local/pgsql/restart.sh
#echo message
echo ""
echo "--------------------------------------------------------------"
echo ""
echo "Please edit /usr/local/pgsql/data/postgresql.conf,pg_hba.conf in first."
echo ""
echo "/usr/local/pgsql/start.sh start pgsql service."
echo "psql -U postgres"
echo "alter user postgres with password '123456'"
echo ""
echo "pgsql install finished.enjoy it."
echo "" |
|