1、數據庫安裝mysql
centos系統自帶的數據庫版本比較低,咱們這裏參照官網安裝postgresql 11版本sql
一、安裝存儲庫RPM: $ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 二、安裝客戶端軟件包 yum install postgresql11 三、安裝服務器包(可選) yum install postgresql11-server 四、初始化而且啓動數據庫 /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl enable postgresql-11 systemctl start postgresql-11 五、登錄數據庫 $ su - postgres $ -bash-4.2$ psql psql (11.3) 輸入 "help" 來獲取幫助信息. $ postgres=# 六、數據庫默認數據存放目錄 -bash-4.2$ pwd /var/lib/pgsql/data
2、數據庫的初始設置數據庫
一、修改監聽地址和端口 $ vim /var/lib/pgsql/11/data/postgresql.conf listen_addresses = '*' //默認是localhost,也就是127.0.0.1,沒法從其餘機器遠程登錄數據庫 port = 5432 //默認端口,若是有多個數據庫實例,能夠修改成不一樣的端口 二、內存參數調整 shared_buffers =128M(默認) // 共享內存大小,用於共享數據塊,根據本身機器內存大小適當調節,大一些能夠緩存更多數據,更高效的處理請求 work_mem = 4M //單個SQL語句執行、排序、hash join使用內存,會自動釋放 三、修改數據庫log相關參數(同上面的配置參數) logging_collector = on log_directory = 'pg_log' 日誌的切換和是否選擇覆蓋可使用以下幾種方案(系統是默認保存一天的): a、天天生成一個新的日誌文件 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation = off log_rotation_age = 1d log_rotation_size = 0 b、每當日誌寫滿必定的大小(如100M),則切換一個新日誌 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation = off log_rotation_age = 0 log_rotation_size = 100M c、只保留7天的日誌,進行循環覆蓋 log_filename = 'postgresql-%a.log' log_truncate_on_rotation = off log_rotation_age = 7d log_rotation_size = 0 四、重啓數據庫 $ systemctl restart postgresql-11
3、數據庫的基本操做vim
一、建立一個學生表 postgres=# CREATE TABLE score (student_name varchar(40),chinese_score int, test_date date); postgres=# create table student(no int primary key,student_name varchar(40),age int); postgres=# \d // \d查看有哪些表 postgres=# \d+ //查看錶的數據更詳細 postgres=# \l //查看有哪些數據庫 List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) 關聯列表 架構模式 | 名稱 | 類型 | 擁有者 ----------+-------+--------+---------- public | score | 數據表 | postgres (1 行記錄) postgres=# CREATE DATABASE testdb; //建立數據庫 CREATE DATABASE postgres=# \c testdb ; //切換到指定數據庫 You are now connected to database "testdb" as user "postgres". postgres=# \d score //查看錶的結構 postgres=# DROP TABLE score; //刪除一張表 postgres=# insert into student values (1,'張三',18); //插入一條數據到學生表 postgres=# select * from student; //查詢表裏面全部的記錄 postgres=# UPDATE student SET age = 15; //修改某一列數據的值
4、Psql工具使用centos
一、遠程鏈接數據庫 psql -h <hostname or ip> -p <端口> [數據庫名稱] [用戶名稱] [root@test ~]# vim /var/lib/pgsql/11/data/pg_hba.conf # IPv4 local connections: host all all 180.76.118.22/24 trust trust:表示信任,不須要密碼既能夠鏈接,遠程來講很是的不安全 md5:表示須要密碼認證才能鏈接,能夠給用戶設置一個密碼 二、給postgres數據庫設置密碼或者修改密碼(先鏈接數據庫) postgres=# ALTER USER postgres WITH PASSWORD 'postgres'; >>>密碼postgres要用引號引發來 三、顯示SQL語句的執行時間 postgres=# select * from student; no | student_name | age ----+--------------+----- 1 | 張三 | 15 (1 row) Time: 0.718 ms 四、postgres=# \dn //列出全部的schema 五、postgres=# \db //列出全部的表空間 六、postgres=# \encoding utf8; //設置默認編碼方式 連續兩個tab鍵表示命令補全
5、邏輯結構緩存
一、表、索引,在pg中叫作Relation,其餘數據庫叫作Table 數據行,pg中叫作Tuple,其餘數據庫叫作Row 二、postgres=# ALTER database osdbadb CONNECTION LIMIT 10; //修改數據的最大鏈接爲10 三、postgres=# ALTER DATABASE osdbadb RENAME TO osdbadb01; //修改數據庫名稱,不能在登陸的數據庫修改本身名稱,道理和大力士不能舉起本身是同樣的 四、模式:一個命名空間或目錄,不一樣模式下能夠有相同名稱的表、函數,只是爲了便於管理,與mysql的database概念是相等的, postgres=# create schema osdba; //建立一個模式 postgres=# \dn //查看有哪些模式