Fedora19更改postgres数据目录,并创建用户初始化数据库
2014-03-05 21:32
393 查看
Postgres英文安装教程参考链接
1,安装数据库
# yum install postgresql postgresql-server postgresql-contrib
2,修改目标目录权限,使普通用户(postgres)能够创建文件
# chmod 777 /data
3,切换到普通用户
# su -postgres
4,创建postgres数据库目录
# mkdir -p /data/gwac_db/pgsql/data
5,使用普通用户初始化数据库,数据目录的所有权为普通用户
-D参数指定postgres数据目录,默认是/var/lib/pgsql/data,同时该目录也是postgres用户的用户目录
# initdb -D /data/gwac_db/pgsql/data/
或者
# pg_ctl init -D /data/gwac_db/pgsql/data/
6,使用管理员账户初始化数据库:
# su - postgres -c '/usr/bin/initdb -D /data/gwac_db/pgsql/data/'
7,修改配置文件
postgresql.conf 监听IP地址及端口
去掉下面两行前的#,并将localhost改为*
listen_addresses = '*'
port = 5432
pg_hba.conf 访问权限控制
在文件最后添加
host all all 190.168.1.0/24 password
/usr/lib/systemd/system/postgresql.service
设置服务启动时的用户及数据库目录
修改
Environment=PGDATA=/data/gwac_db/pgsql/data
然后运行如下命令,重新加载服务
systemctl --system daemon-reload
*额外篇
在上面的改完后,使用9启动服务命令,服务起不来,最终发现与 SELinux 的安全设置有关。
最后将SELinux的安全级别设置为permissive,服务启动成功。enforcing级别实在搞不定,这个问题留着以后吧。
参考链接
PostgreSQL
Changing Database Location
Practical SELinux
for the beginner: Contexts and labels
为postgres添加SELinux管理的额外的目录:
查看SELinux安全级别
# getenforce
为postgres添加额外可访问的目录
# semanage fcontext -a -t postgresql_db_t " /data/gwac_db/pgsql/data (/.*)?"
将SELinux配置应用到目录属性
# restorecon -Rv /data/gwac_db/pgsql/data
查看目录的SELinux属性
# ls -dZ /data/gwac_db/pgsql/data
查看目录的SELinux及其子目录及文件夹的属性
# ls -lZ /data/gwac_db/pgsql/data
查看默认postgres数据目录的SELinux属性
# ls -dZ /var/lib/pgsql/data 默认目录
新建目录一直是unconfined_u:object_r:postgresql_db_t:s0,而默认目录的system_u:object_r:postgresql_db_t:s0
个人估计是这个问题导致postgres数据库无法启动。
8,添加为系统服务
# systemctl enable postgresql.service
命令输出:ln -s '/usr/lib/systemd/system/postgresql.service' '/etc/systemd/system/multiuser.target.wants/postgresql.service'
9,启动服务
通过系统服务启动
# systemctl start postgresql.service
通过命令启动
# su - postgres -c '/usr/bin/pg_ctl start -D /data/gwac_db/pgsql/data/'
10,登陆初始数据库
# sudo -u postgres psql postgres
11,修改postgres用户的密码
# \password postgres
12,创建数据库用户norm_user,没有建库的权限( -D),没有添加用户的权限(-A),设置密码(-P)
# sudo -u postgres createuser -D -A -Pnorm_user
13,创建一个数据库gwacdb,并设置其用户为norm_user
# sudo -u postgres createdb -Onorm_user testdb
在系统用户norm_user 下登陆testdb数据库
# psql testdb
14,其他数据库操作命令
启动数据库
# pg_ctl start -D /data/gwac_db/pgsql/data/
关闭数据库
# pg_ctl stop -D /data/gwac_db/pgsql/data/
重新启动
# pg_ctl restart -D /data/gwac_db/pgsql/data/
查看状态
# pg_ctl status -D /data/gwac_db/pgsql/data/
杀死数据库进程
# pg_ctl kill signal_name process_id
1,安装数据库
# yum install postgresql postgresql-server postgresql-contrib
2,修改目标目录权限,使普通用户(postgres)能够创建文件
# chmod 777 /data
3,切换到普通用户
# su -postgres
4,创建postgres数据库目录
# mkdir -p /data/gwac_db/pgsql/data
5,使用普通用户初始化数据库,数据目录的所有权为普通用户
-D参数指定postgres数据目录,默认是/var/lib/pgsql/data,同时该目录也是postgres用户的用户目录
# initdb -D /data/gwac_db/pgsql/data/
或者
# pg_ctl init -D /data/gwac_db/pgsql/data/
6,使用管理员账户初始化数据库:
# su - postgres -c '/usr/bin/initdb -D /data/gwac_db/pgsql/data/'
7,修改配置文件
postgresql.conf 监听IP地址及端口
去掉下面两行前的#,并将localhost改为*
listen_addresses = '*'
port = 5432
pg_hba.conf 访问权限控制
在文件最后添加
host all all 190.168.1.0/24 password
/usr/lib/systemd/system/postgresql.service
设置服务启动时的用户及数据库目录
修改
Environment=PGDATA=/data/gwac_db/pgsql/data
然后运行如下命令,重新加载服务
systemctl --system daemon-reload
*额外篇
在上面的改完后,使用9启动服务命令,服务起不来,最终发现与 SELinux 的安全设置有关。
最后将SELinux的安全级别设置为permissive,服务启动成功。enforcing级别实在搞不定,这个问题留着以后吧。
参考链接
PostgreSQL
Changing Database Location
Practical SELinux
for the beginner: Contexts and labels
为postgres添加SELinux管理的额外的目录:
查看SELinux安全级别
# getenforce
为postgres添加额外可访问的目录
# semanage fcontext -a -t postgresql_db_t " /data/gwac_db/pgsql/data (/.*)?"
将SELinux配置应用到目录属性
# restorecon -Rv /data/gwac_db/pgsql/data
查看目录的SELinux属性
# ls -dZ /data/gwac_db/pgsql/data
查看目录的SELinux及其子目录及文件夹的属性
# ls -lZ /data/gwac_db/pgsql/data
查看默认postgres数据目录的SELinux属性
# ls -dZ /var/lib/pgsql/data 默认目录
新建目录一直是unconfined_u:object_r:postgresql_db_t:s0,而默认目录的system_u:object_r:postgresql_db_t:s0
个人估计是这个问题导致postgres数据库无法启动。
8,添加为系统服务
# systemctl enable postgresql.service
命令输出:ln -s '/usr/lib/systemd/system/postgresql.service' '/etc/systemd/system/multiuser.target.wants/postgresql.service'
9,启动服务
通过系统服务启动
# systemctl start postgresql.service
通过命令启动
# su - postgres -c '/usr/bin/pg_ctl start -D /data/gwac_db/pgsql/data/'
10,登陆初始数据库
# sudo -u postgres psql postgres
11,修改postgres用户的密码
# \password postgres
12,创建数据库用户norm_user,没有建库的权限( -D),没有添加用户的权限(-A),设置密码(-P)
# sudo -u postgres createuser -D -A -Pnorm_user
13,创建一个数据库gwacdb,并设置其用户为norm_user
# sudo -u postgres createdb -Onorm_user testdb
在系统用户norm_user 下登陆testdb数据库
# psql testdb
14,其他数据库操作命令
启动数据库
# pg_ctl start -D /data/gwac_db/pgsql/data/
关闭数据库
# pg_ctl stop -D /data/gwac_db/pgsql/data/
重新启动
# pg_ctl restart -D /data/gwac_db/pgsql/data/
查看状态
# pg_ctl status -D /data/gwac_db/pgsql/data/
杀死数据库进程
# pg_ctl kill signal_name process_id
相关文章推荐
- sp_rename 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
- MYSQL 更改数据库data存储目录 创建用户 创建权限 设置远程访问的权限.
- oracle创建用户,创建数据库,导入数据,赋予创建视图~创建触发器权限
- 第4章 处理用户输入与显示数据------------(创建本地临时文件、在/temp中创建临时文件、创建临时目录、tee命令)
- Postgres用户创建数据库的权限
- Mysql 创建数据库、用户、授权、导入数据
- 创建表空间以及用户,授予权限,查看表空间名称及大小,物理文件的名称及大小,数据库的创建日期和归档方式,数据库的版本,数据库库对象,表空间的使用情况,表空间读写
- 支持“xxx”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库
- Mysql数据库初始化后更改数据存储目录
- oracle创建用户,创建数据库,导入数据,赋予创建视图~创建触发器权限
- 支持“XX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库
- mysql创建数据库、用户及导入数据
- MySQL更改数据库数据存储目录
- 数据库MySQL免安装版本在Windows系统上更改数据文件目录
- postgres更改数据库用户密码
- 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
- postgres数据库存储目录 更改
- 创建数据库后支持的模型被更改,考虑使用代码优先更新数据库
- SQL Server 不清空数据,修改数据库字段、结构,阻止保存要求重新创建表的更改
- 第4章 处理用户输入与显示数据------------(创建本地临时文件、在/temp中创建临时文件、创建临时目录、tee命令)