查看Gitlab配置信息 cat /var/opt/gitlab/gitlab-rails/etc/database.yml
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.
production:
adapter: postgresql
encoding: unicode
collation:
database: gitlabhq_production
pool: 10
username: "gitlab"
password:
host: "/var/opt/gitlab/postgresql"
port: 5432
socket:
sslmode:
sslcompression: 0
sslrootcert:
sslca:
load_balancing: {"hosts":[]}
prepared_statements: false
statements_limit: 1000
fdw:
如果没有自定义更改数据库,默认为postgresql,当然也支持使用自己的MySQL等进行替换。
查看Gitlab对应的系统用户 cat /etc/passwd | grep gitlab
gitlab-www:x:998:998::/var/opt/gitlab/nginx:/bin/false
git:x:997:997::/var/opt/gitlab:/bin/sh
gitlab-redis:x:996:996::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:995:995::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:994:994::/var/opt/gitlab/prometheus:/bin/sh
# 切换用户
su - gitlab-psql
有横杠 login shell:用户切换,更改工作目录,加载所有用户环境配置。
无横杠 interactive shell:用户切换,但是工作目录不会切换到该用户所在工作目录,也不会加载该用户设置的环境变量。
注:需在root用户下切换
# /etc/passwd
gitlab-psql:x:995:995::/var/opt/gitlab/postgresql:/bin/sh
现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。
# /etc/shadow
gitlab-psql:!:18437::::::
第二列为"!",即":!:",表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式。
dump用户表
echo 'select * from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > user_dump.txt
默认的导出路径为配置文件中的 /var/opt/gitlab/postgresql
综上,最终一句话命令导出到tmp目录可概括为:
sudo -i -u gitlab-psql bash -c "echo 'select * from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > /tmp/user_dump.txt"
其它数据库操作
# 登陆数据库(-h指定host,-d指定数据库)
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
# 查看帮助信息
gitlabhq_production=# \h
# 查看数据库
gitlabhq_production=# \l
# 查看库中的表(执行命令后,按回车键显示更多表信息)
gitlabhq_production=# \dt
# 通过筛查,可在库中找到users表,相关用户信息都记录在表中!
# 查看users表结构
gitlabhq_production=# \d users
# 查看表信息
gitlabhq_production=# SELECT * FROM users;
# 查看users表中的name字段
gitlabhq_production=# SELECT name FROM users;
# 登出数据库
gitlabhq_production=# \q
网友评论