PostgreSql基礎命令及問題總結


 

本章內容:

  1、基本命令

 

基本命令 

  1、psql -U cdnetworks_beian -d cdnetworks_beian         #-U指定用戶,-d指定數據庫

  2、\l                   #相當於show databases;

  3、\d                  #想當與show tables;

       \d后面跟一個表名,表示顯示這個表的結構定義 

    \db       #顯示創建的tablespace 

  4、DROP TABLE table_name              #刪除表

  5、CREATE DATABASE dbname          #創建數據庫

  6、DROP DATABASE                          #刪除數據庫

  7、CREATE TABLE DEPARTMENT(

                           ID INT PRIMARY KEY NOT NULL,

                       DEPT CHAR(50) NOT NULL,

            );

                                                              #創建表

 

  

 

Mac 安裝postgreSql的啟動方法

To migrate existing data from a previous major version of PostgreSQL, see:

  https://www.postgresql.org/docs/10/static/upgrading.html

  You will need your previous PostgreSQL installation from brew to perform

  `pg_upgrade` or `pg_dumpall` depending on your upgrade method.

  Do not run `brew cleanup postgresql` until you have performed the migration.

To have launchd start postgresql now and restart at login:

  brew services start postgresql

Or, if you don't want/need a background service you can just run:

  pg_ctl -D /usr/local/var/postgres start

==> Summary

🍺  /usr/local/Cellar/postgresql/10.0: 3,367 files, 38.7MB

 
brew services start postgresql      #啟動postgre

brew services stop postgresql

brew services restart postgresql

 

也可以用pg_ctl去啟動

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

#啟動postgre sql

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

 

查看tablespace的方法

SELECT * FROM pg_tablespace;

---

\db

createuser cdnetworks_beian -s -P         #創建炒雞用戶。然后就可以創建表空間了

 

事務報錯

 

cdnetworks_beian=# CREATE TABLESPACE cdnetworks_beian LOCATION '/tmp/data/cdnetworks_beian';

CREATE TABLESPACE

cdnetworks_beian=# \db

                       List of tablespaces

       Name       |      Owner       |          Location          

------------------+------------------+----------------------------

 cdnetworks_beian | cdnetworks_beian | /tmp/data/cdnetworks_beian

 dbtbs01          | wangjin          | /usr/local/var/postgres

 pg_default       | wangjin          | 

 pg_global        | wangjin          | 

(4 rows)

 
 #本地可以正常鏈接,並執行命令,但是通過psycopg2會有問題,如下所示:

 

In [17]: cur.execute("CREATE TABLE oui_service (service_id INT PRIMARY

KEY,service_name VARCHAR(20)) TABLESPACE cdnetworks_beian;")

---------------------------------------------------------------------------

InternalError                             Traceback (most recent call last)

<ipython-input-17-6d2937a75a92> in <module>()

----> 1 cur.execute("CREATE TABLE oui_service (service_id INT PRIMARY

KEY,service_name VARCHAR(20)) TABLESPACE cdnetworks_beian;")

 

InternalError: current transaction is aborted, commands ignored until end of

transaction block

 

#事務被終端了,這時候需要 conn.commit() 下,讓其回滾,然后再去執行其他的操作

 

 

 

遠程登錄沒有權限

遠程登錄操作,如上報錯,實際上本地是可以登錄,也可以創建任何東西的。

需要修改下配置

   1.修改pg_hba.conf文件,配置用戶的訪問權限(#開頭的行是注釋內容):

  1. # TYPE DATABASE  USER    CIDR-ADDRESS     METHOD
  2. # "local" is for Unix domain socket connections only
  3. local all    all               trust
  4. # IPv4 local connections:
  5. host  all    all    127.0.0.1/32     trust
  6. host  all    all    192.168.1.0/24    md5
  7. # IPv6 local connections:
  8. host  all    all    ::1/128       trust

   其中,第7條是新添加的內容,表示允許網段192.168.1.0上的所有主機使用所有合法的數據庫用戶名訪問數據庫,並提供加密的密碼驗證。

   其中,數字24是子網掩碼,表示允許192.168.1.0--192.168.1.255的計算機訪問!

 

   2.修改postgresql.conf文件,將數據庫服務器的監聽模式修改為監聽所有主機發出的連接請求。

   定位到#listen_addresses=’localhost’。PostgreSQL安裝完成后,默認是只接受來在本機localhost的連接請 求。

   將行開頭都#去掉,將行內容修改為listen_addresses=’*'來允許數據庫服務器監聽來自任何主機的連接請求

 

   然后重啟服務,這是后遠程就可以登錄操作了。

 

tablesspace 目錄下的文件被刪除了

  報錯:

  原因:

  把這個tablespace指向的文件,放到這個tmp目錄下了,一重啟什么都沒有了,需要重新建立

  # drop tablespace if exists cdnetworks_beian;

  #create tablespace cdnetworks_beian  location '/Users/shell/postgresql/data';

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM