强大的开源对象关系数据库系统,它使用并扩展了SQL语言。在mac环境下,可以使用 brew
来安装,也可以直接下载app安装。
初始化数据库
1
| initdb /usr/local/var/postgres
|
启动或停止数据库
启动服务
1
| pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
|
停止服务
1
| pg_ctl -D /usr/local/var/postgres stop -s -m fast
|
如果先嫌麻烦,可以加入开机自动启动
1
| ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
|
操作数据库
pgAdmin
是一个可视化数据库服务器管理工具。
SQL Shell (psql )
控制台数据库管理入口。
在安装的过程中,会自动为系统生成一个账号PostgreSQL,密码随机,这里你要重设一个密码。
重设密码
控制台下:
1 2
| sudo passwd -d postgres password -d 为删除指定用户密码
|
然后设置新密码:
然后你就可以用 postgres
用户在服务器上通过 pgAdmin
或者 psql
来操作数据库了 。
psql 的简单操作
点击 SQL Shell (psql) 启动控制台应用。
1 2 3 4 5 6 7
| Server [localhost]: //第一步 ,默认本地 ,直接回车即可 ,远程数据库 ,请输入远程服务器IP Database [postgres]: //第二步 ,执行数据库 , postgresql 安装时已经默认安装 postgres 数据库 ,直接回车进入此库 Port [5432]: //第三步 ,默认绑定 5432 端口 ,如果你有修改请这里指定 ,否则默认连接此端口(注意防火墙放行端口) Username [postgres]: //第四步 ,默认使用 postgres 用户登录数据库 ,没有指定用户的话 ,直接回车 psql (9.4.1) Type "help" for help 。 postgres=# //看到这一步 ,已经成功进入 postgres 数据库 。
|
或者你可以用下面一条命令来登录PostgreSQL
1 2
| psql -U postgres -d postgres -h 127.0.0.1 -p 5432 //参数说明: -U 指定用户 -d 指定数据库 -h 数据库服务器ip -p 端口
|
如果你的系统登录用户名和PostgreSQL数据库操作用户名相同的话,可以省略 -U 参数 。
如果你的Mac 命令控制台不支持psql,那么需要你手动添加到全局变量里:
1 2
| locate psql | grep /bin /Library/PostgreSQL/9.4/bin/psql
|
编辑.bash_profile
文件或.bashrc
文件,添加命令别名
1
| alias psql=/Library/PostgreSQL/9.4/bin/psql
|
然后让.bash_profile
生效即可
psql 控制台简单的操作命令
1 2 3 4 5 6 7 8 9 10 11
| \h select。 \? 查看psql命令列表。 \l 列出所有数据库。 \c [database_name]:连接其他数据库。 \d 列出当前数据库的所有表格。 \d [table_name]:列出某一张表格的结构。 \du 列出所有用户。 \e 打开文本编辑器。 \conninfo 列出当前数据库和连接的信息。 \q 退出 \password 设置命令
|
操作sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| # 创建新表 CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE); # 插入数据 INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22'); # 选择记录 SELECT * FROM user_tbl; # 更新数据 UPDATE user_tbl set name = '李四' WHERE name = '张三'; # 删除记录 DELETE FROM user_tbl WHERE name = '李四' ; # 添加栏位 ALTER TABLE user_tbl ADD email VARCHAR(40); # 更新结构 ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL; # 更名栏位 ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup; # 删除栏位 ALTER TABLE user_tbl DROP COLUMN email; # 表格更名 ALTER TABLE user_tbl RENAME TO backup_tbl; # 删除表格 DROP TABLE IF EXISTS backup_tbl;
# 创建一个 PostgreSQL 用户
createuser username -P #Enter password for new role: #Enter it again: 上面的 username 是用户名,回车输入 2 次用户密码后即用户创建完成。更多用户创建信息可以 “createuser –help” 查看。
# 创建数据库
createdb dbname -O username -E UTF8 -e 上面创建了一个名为 dbname 的数据库,并指定 username 为改数据库的拥有者(owner),数据库的编码(encoding)是 UTF8,参数 “-e” 是指把数据库执行操作的命令显示出来。
更多数据库创建信息可以 “createdb –help” 查看。
|
连接数据库
1
| psql -U username -d dbname -h 127.0.0.1
|
数据的导出
1 2 3 4 5
| pg_dump -U postgres(用户名) (-t 表名) 数据库名(缺省时同用户名) > 路径/文件名.sql [html] view plain copy pg_dump -U postgres -t system_calls wangye > ./test.sql ls 9.1 test.sql
|
数据的导入
导入数据时首先创建数据库再用psql导入:
1 2 3
| createdb newdatabase psql -d newdatabase -U postgres -f mydatabase.sql // sql 文件在当前路径下 psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名.sql // sql 文件不在当前路径下
|
赋予用户超级权限
1 2
| sudo -u postgres psql CREATE USER root WITH SUPERUSER;
|