zoukankan      html  css  js  c++  java
  • Mac下安装Postgresql

    目录

    1. homebrew 安装
    2. 启动和关闭 postgresql
    3. 创建数据库和账户
    4. 登陆控制台指令

    一.homebrew 安装

    安装命令

    eternity@TheEternitydeMacBook-Pro ~ % brew install postgresql

    eternity@TheEternitydeMacBook-Pro ~ % psql --version

    psql (PostgreSQL) 12.3

    初始化

    initdb /usr/local/var/postgres

    如果出现如下提示,可以跳过此步

    The files belonging to this database system will be owned by user "eternity".
    This user must also own the server process.
    
    The database cluster will be initialized with locale "zh_CN.UTF-8".
    The default database encoding has accordingly been set to "UTF8".
    initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
    The default text search configuration will be set to "simple".
    
    Data page checksums are disabled.
    
    initdb: error: 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".
    

    二.启动和关闭 postgresql

    设成开机启动 PostgreSQL:

    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
    
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
    
    

    启动 PostgreSQL:

    pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

    关闭 PostgreSQL:

    pg_ctl -D /usr/local/var/postgres stop -s -m fast

    三.创建数据库和账户

    1.初始化数据库及登录

    mac安装PostgreSQL后不会创建用户名数据库,执行命令:

    createdb

    如果不执行 createdb,会报错:psql: error: could not connect to server: FATAL: database "用户名" does not exist

    然后登录PostgreSQL控制台:

    psql

    示例:

    eternity@TheEternitydeMacBook-Pro postgres % psql

    psql (12.3)

    Type "help" for help.

    eternity=#

    psql连接数据库默认选用的是当前的系统用户

    使用l命令列出所有的数据库,看到已存在用户同名数据库、postgres数据库,但是postgres数据库的所有者是当前用户,没有postgres用户。

    2.创建用户及数据库

    ①创建postgres用户

    CREATE USER postgres WITH PASSWORD '123456';
    

    ②删除默认生成的postgres数据库

    DROP DATABASE postgres;
    

    ③创建属于postgres用户的postgres数据库

    CREATE DATABASE postgres OWNER postgres;
    

    ④将数据库所有权限赋予postgres用户

    GRANT ALL PRIVILEGES ON DATABASE postgres to postgres;
    

    ⑤给postgres用户添加创建数据库的属性

    ALTER ROLE postgres CREATEDB;
    

    这样就可以使用postgres作为数据库的登录用户了,并可以使用该用户管理数据库

    四.登陆控制台指令

    psql -U [user] -d [database] -h [host] -p [port]
    

    -U指定用户,-d指定数据库,-h指定服务器,-p指定端口
    完整的登录命令,比如使用postgres用户登录

    psql -U postgres -d postgres
    

    之前我们直接使用psql登录控制台,实际上使用的是缺省数据

    user:当前mac用户
    database:用户同名数据库
    主机:localhost
    端口号:5432,postgresql的默认端口是5432
    

    常用控制台指令

    password:设置当前登录用户的密码
    h:查看SQL命令的解释,比如h select。
    ?:查看psql命令列表。
    l:列出所有数据库。
    c [database_name]:连接其他数据库。
    d:列出当前数据库的所有表格。
    d [table_name]:列出某一张表格的结构。
    du:列出所有用户。
    e:打开文本编辑器。
    conninfo:列出当前数据库和连接的信息。
    password [user]: 修改用户密码
    q:退出
    

    使用PostgreSQL

    现在来简单的学习一下使用PostgreSQL,以下命令都在postgres=# 环境下
    修改用户密码
    之前我们用命令CREATE USER postgres WITH PASSWORD 'XXXXXX';创建了postgres用户,现在我们来修改该用户的密码:

    ALTER USER postgres WITH PASSWORD 'XXXXXX'
    

    出现ALTER ROLE, 代表修改角色成功

    创建和删除数据库用户

    创建user1用户:CREATE USER user1 WITH PASSWORD 'XXXX'

    查看数据库用户列表:du

    删除数据库用户:drop user user1;

    创建和删除数据库

    创建数据库:create database testdb;

    查看数据库列表:l

    删除数据库:drop database db1;

    创建和删除数据表

    选择数据库:c DatabaseName,比如c testdb

    创建数据库表:CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);

    删除数据库表: drop table company;

    查看数据库信息:d

    查询数据:select * from company

  • 相关阅读:
    Python全栈之路系列----之-----并发编程Process类
    Python全栈之路系列----之-----网络编程(粘包与命令执行/数据传输)
    Python全栈之路系列----之-----网络编程(套接字)
    Python全栈之路系列----之-----面向对象5(封装/访问限制)
    Python全栈之路系列----之-----面向对象2(命名空间/组合)
    6. EF Core 数据库实体关系外键的配置
    5.EF Core 数据库映射模型隐藏属性配置
    4.EF Core 数据库映射模型基本配置
    3.EF Core 隐射表的几种默认约束
    2.EF Core添加数据库配置的几种方式
  • 原文地址:https://www.cnblogs.com/eternityz/p/13529252.html
Copyright © 2011-2022 走看看