ps auxwww | grep postgres
brew info postgresql
在 mac 下,可以利用 homebrew 直接安装 PostgreSQL:
brew install postgresql -v
稍等片刻,PostgreSQL 就安装完成。安装会自动初始化数据库,初始配置 PostgreSQL:
# This formula has created a default database cluster with:
initdb --locale=C -E UTF-8 /usr/local/var/postgres
上面指定 “/usr/local/var/postgres” 为 PostgreSQL 的配置数据存放目录,并且设置数据库数据编码是 utf8,更多配置信息可以 “initdb --help” 查看。
# To restart postgresql after an upgrade:
brew services restart postgresql
# Or, if you don't want/need a background service you can just run:
/usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres
设成开机启动 PostgreSQL:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
一般默认已经创建好了postgres用户,密码为空
psql -U postgres
# 添加 Postgresql 源到系统源
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# 添加签名密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 更新软件包列表
# 在此之前可以先将软件源更换为国内的软件源
sudo apt-get update
# 安装最新版本
sudo apt-get -y install postgresql # postgresql就是服务端,apt install postgresql-client是客户端
# 指定版本
sudo apt-get install postgresql-12
# 相应扩展,安装这个contrib 才可以使用 uuid 等函数.
# sudo apt-get install postgresql-contrib # 会安装最新版本postgresql postgresql-client 要注意
# 清除密码
sudo passwd -d postgres
# 设置密码
sudo -u postgres passwd
# Enter new UNIX password:
# Retype new UNIX password:
# passwd: password updated successfully
状态 sudo service postgresql status
启动 sudo service postgresql start
停止 sudo service postgresql stop
重启 sudo service postgresql restart
状态 sudo /etc/init.d/postgresql status
启动 sudo /etc/init.d/postgresql start
停止 sudo /etc/init.d/postgresql stop
重启 sudo /etc/init.d/postgresql restart
# 命令行查看
psql --version
pg_config | grep VERSION
# 登录数据库 sudo -u postgres psql
show server_version;
sudo -u postgres psql
# 登录后
ALTER USER postgres WITH PASSWORD '1qaz2wsx';
# 或者
\password postgres # 然后输入两次密码
vim /etc/postgresql/12/main/postgresql.conf
#listen_addresses = 'localhost' 改为 listen_addresses = '*'
# Listen on all interfaces
#listen_addresses = 'localhost' 改为 listen_addresses = '*'
listen_addresses = '*'
# Listen on specified private IP address
listen_addresses = '192.168.10.11'
修改pg_hba.conf 文件
vim /etc/postgresql/12/main/pg_hba.conf
在文档末尾加上以下内容
host all all 0.0.0.0/0 md5
host all all 0.0.0.0/0 trust
#配置192.168.88.0网段的所有主机均可访问,24为子网掩码
host all all 192.168.88.0/24 md5
#测试环境不要求严格权限是可像如下配置
host all all 0.0.0.0/0 trust
vim /etc/postgresql/12/main/pg_hba.conf
local all postgres peer
# 改成
local all postgres md5
然后重启 sudo service postgresql restart
查看状态:sudo ufw status
允许指定ip:sudo ufw allow from 192.168.1.1
或者开放端口:sudo ufw allow 2021
重启:sudo ufw reload
psql -U postgres -h 192.168.1.107 -p 5432 -d postgres
psql -U postgres -h localhost -p 5432 -d octa_cis
-U username为数据库用户
-h 数据库地址 如果为localhost 可省略
-p 端口 默认5432可省略
-d 数据库库名
创建用户 create user zhangsan with password ‘1qaz2wsx’;
授权 GRANT ALL PRIVILEGES ON DATABASE mydatabase to zhangsan;
添加角色 ALTER ROLE zhangsan WITH SUPERUSER;
切换用户 su postgres
链接pgsql psql -U postgres
添加密码 ALTER USER postgres WITH PASSWORD ‘1qaz2wsx’;
查看用户 select * from pg_shadow;
创建表 CREATE DATABASE test WITH OWNER = postgres ENCODING = ‘UTF8’;
查看所有数据库: select * from pg_database;
选择库 \c database;
查看客户端版本 psql --version 查看服务器版本 postgres=# show server_version;
查看详细信息 postgres=# select version();
# 登录后操作
create user username with password 'password';
# 或
createuser username -P
#Enter password for new role:
#Enter it again:
上面的 username 是用户名,回车输入 2 次用户密码后即用户创建完成。
create database dbname owner username;
# 或者
createdb dbname -O username -E UTF8 -e
# 创建了一个名为 dbname 的数据库,并指定 username 为改数据库的拥有者(owner),数据库的编码(encoding)是 UTF8,参数 "-e" 是指把数据库执行操作的命令显示出来。
GRANT ALL PRIVILEGES ON DATABASE dbname to username;
# 要给用户添加角色
ALTER ROLE username WITH SUPERUSER;
连接数据库
psql -U username -d dbname -h 127.0.0.1
psql -U postgres -h 218.28.7.253 -p 8001 -d postgres
显示已创建的数据库:
\l
在不连接进 PostgreSQL 数据库的情况下,也可以在终端上查看显示已创建的列表:
psql -l
连接数据库
\c dbname
显示数据库表
\d
创建一个名为 test 的表
CREATE TABLE test(id int, text VARCHAR(50));
插入一条记录
INSERT INTO test(id, text) VALUES(1, 'sdfsfsfsdfsdfdf');
查询记录
SELECT * FROM test WHERE id = 1;
更新记录
UPDATE test SET text = 'aaaaaaaaaaaaa' WHERE id = 1;
删除指定的记录
DELETE FROM test WHERE id = 1;
删除表
DROP TABLE test;
删除数据库
DROP DATABASE dbname;
或者利用 dropdb 指令,在终端上删除数据库
dropdb -U user dbname
DETAIL: Key (id)=(1) already exists.
select setval('tablename_id_seq', max(id)) from tablename;
#rails c 里边执行
(ActiveRecord::Base.connection.tables - ['schema_migrations', 'ar_internal_metadata']).each do |tablename|
User.find_by_sql("select setval('#{tablename}_id_seq', max(id)) from #{tablename};")
end