PostgreSql基礎命令及問題總結

 

本章內容:html

  一、基本命令python

 

基本命令 

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

  二、\l                   #至關於show databases;shell

  三、\d                  #想當與show tables;數據庫

       \d後面跟一個表名,表示顯示這個表的結構定義 服務器

    \db       #顯示建立的tablespace less

  四、DROP TABLE table_name              #刪除表dom

  五、CREATE DATABASE dbname          #建立數據庫socket

  六、DROP DATABASE                          #刪除數據庫ide

  七、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';

相關文章
相關標籤/搜索