在Mac上安装PostgreSQL
操作系统环境:Mac OS X 10.9.4
使用Homebrew安装
$ brew install postgresql
:
:
==> /usr/local/Cellar/postgresql/9.3.4/bin/initdb /usr/local/var/postgres
==> Summary
? /usr/local/Cellar/postgresql/9.3.4: 2921 files, 38M
使用UTF-8来初始化数据库的字符编码。
$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "dai".
This user must also own the server process.
The database cluster will be initialized with locale "ja_JP.UTF-8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".
Data page checksums are disabled.
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
检查Postgres的版本
$ postgres --version
postgres (PostgreSQL) 9.3.4
启动PostgreSQL服务器
$ postgres -D /usr/local/var/postgres
LOG: database system was shut down at 2014-07-09 00:37:58 JST
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
使用psql命令获取数据库列表。
一旦能够获取数据库列表,任务就完成了。
$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+------------+----------+-------------+-------------+-------------------
postgres | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/username +
| | | | | dai=CTc/username
template1 | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/username +
| | | | | dai=CTc/username
(3 rows)
将DB的位置设置为环境变量
# PostgreSQL設定(DBの置き場所)
export PGDATA=/usr/local/var/postgres
使用pg_ctl命令启动和停止PostgreSQL。
pg_sql是一种数据库管理系统。
据说pg_ctl是用于启动、停止、重新启动或显示正在运行的postmaster状态的PostgreSQL后台服务器的实用程序。
通常情况下,我们按以下方式进行启动。
$ pg_ctl -D /usr/local/pgsql/data -l /var/log/postgres start
请停下
$ pg_ctl -D /usr/local/pgsql/data stop
如果设置了环境变量PGDATA,则在使用pg_ctl启动或停止时不需要传递-D参数。
开始运行
$ pg_ctl -l /usr/local/var/postgres/server.log
server starting
$
[停下来]
$ pg_ctl stop
waiiting for server to shut down.... done
server stoped
$
创建和确认用户
创建用户
由于环境变量$USER被设置为超级用户并且直接使用不太好,因此需要创建一个新用户。
可以使用以下命令来创建Postgres用户,但是需要先确保postgreSQL服务已启动。
此外,为了给用户分配密码,在创建用户时需要使用-P选项。
$ createuser -P <pg-user>
Enter password for new role:
Enter it again:
确认已创建的用户
$ psql -q -c'select * from pg_user' <pg-user>
usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valuntil | useconfig
----------+----------+-------------+----------+-----------+---------+----------+----------+-----------
myuser | 10 | t | t | t | t | ******** | |
postgres | 16384 | f | f | f | f | ******** | |
(2 rows)
建立DB
本次使用createdb命令创建了数据库,名称为example-db。
$ createdb example-db -O <pg-user>
选项
-
- -O [オーナー] or (–owner)
- 作成するデータベースの所有者となるユーザを指定します。
在PSL中连接到数据库。
数据库连接
可以使用psql命令连接到数据库,并执行SQL等操作。
$ psql -U <pg-user> example-db
psql(9.4.0)
Type "help" for help
example-db=>
选项
-
- -f [ファイル名] or (–filename)
-
- 指定したファイルを問い合わせのソースとして使用します。
-
- -U [接続ユーザ名] or (–username)
-
- PostgreSQLに接続するユーザ名を指定します。
-
- -h [ホスト名] or (–hostname)
- PostgreSQLに接続するホスト名を指定します。
确认DB和表信息
コマンド説明\lDB一覧\c [DB名]DBの切り替え\d テーブル一覧\d [テーブル名]テーブルの項目(フィールド)確認\qpsqlを終了する