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 //查看有哪些模式