本文包含以下内容:
设置原生机的权限
拉取镜像
通过镜像启动容器
图解mysql与oracle 体系结构
连接数据库,创建表空间,用户,授权
前言:
看到教程都挺多的,而且都比较新,但是这时读者可能会有疑问,“为什么有教程还写推文呢?”,问题就在坑太多,而且写得不明不白的,下面我将以docker 环境为基础(网络上安装docker 教程较全,不做赘述),带大家把坑填一下,下图是我查了一天的安装历史记录,足足15条,可以说找遍全网
正文开始
01设置原生机的权限
设置原因:如果不设置会导致“docker挂载目录失败/权限拒绝”
1)临时关闭selinux
直接在centos服务器上执行以下命令即可。执行完成以后建议重新docker run。setenforce 0
2)修改配置系统配置文件永久生效
修改/etc/selinux/config文件,设置为disable# disabled – No SELinux policy is loaded.SELINUX=disable
3)给容器加权限
在docker run时给该容器加权限,加上以下参数即可:一般都推荐使用这种方式。–privileged=true
02拉取镜像
这个比较耗时,中间可能会中断,继续拉取即可dockerpullwnameless/oracle-xe-11g拉取成功通过docker images可以看到效果如下图所示
03通过镜像启动容器
通过镜像创建实例,懂一点docker 的人都会想,这不是很简单嘛?,此处踩坑 1,原本通过挂载目录-v 挂载外部目录与内部目录相关联,但是会出现初始化失败,通过docker logs 查看日志,可以看到listener.ora.tmpl’: No such file or directory
所以我们避免出现这种错误,就不设置目录挂载,启动命令如下:
docker run –privileged=true –restart=always -d -p 2122:22-p1521:1521–nameoraclewnameless/oracle-xe-11g
参数解析:
命令作用–privileged=true赋予权限–restart=always跟随docker 启动-d后台运行容器,并返回容器ID;-p 2122:22 -p 1521:1521 端口映射–nameoracle容器命名wnameless/oracle-xe-11g镜像名称
04图解mysql与oracle 体系结构
要从Mysql 转到Oracle 首先要明确2种数据库系统,体系结构的区别:
在Mysql 中一个用户可以连接多个DataBase 数据库,数据库中有多个表,存放信息。
在Oracle 中,数据库变为了表空间tablespace ,一个表空间有一个用户user ,然后在当前旧项目Hibernate有 schema 概念,通过:https://www.cnblogs.com/lgx5/p/11688534.html 这篇博客,了解到一个用户默认对应的schema 就是用户名称的大写,所以必须按照项目代码中的名称schema 建立用户,或创建指定用户的schema
05连接数据库,创建表空间,用户,授权
1)连接数据库
启动完成就到了,使用的时候了,过去通过命令行界面操作复杂,可以直接安装navicat for oracle 破解版:安装教程如下:
https://www.cnblogs.com/zhangguosheng1121/p/12581202.html
安装完成即可进行连接到实例:
服务名:xe
用户名 :system
密码:oracle
如下图所示
新建查询,便于输入sql 语句:
2)创建命名空间,命名空间必须要指定一个文件dbf 文件存放,推荐有自增属性,避免,数据到达指定空间,导致数据库无法正常运行
/*创建表空间*/create tablespace ePay/*表空间物理文件名称*/datafile ‘ePay.dbf’ — 这种方式指定表空间物理文件位置– datafile ‘F:\APP\QIUCHANGJIN\ORADATA\ORCL\QCJ_TABLESPACE.dbf’ — 大小 500M,每次 5M 自动增大,最大不限制size 500M autoextend on next 5M maxsize unlimited;
3)创建用户,并指定命名空间
create user swtonline identified by swtonline default tablespace EPAY;create user swtbillpay identified by myline default tablespace EPAY;
4)对用户进行授权
三种标准角色:
1》connect role(连接角色)
–临时用户,特指不需要建表的用户,通常只赋予他们connect role.
–connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
–拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
2》resource role(资源角色)
–更可靠和正式的数据库用户可以授予resource role。
–resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》dba role(数据库管理员角色)
–dba role拥有所有的系统权限
–包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
grant connect,resource,dba to swtonline ;grant connect,resource,dba to swtbillpay ;
到此oracle 数据库安装完毕。
文章推荐
??程序员不愿996,创建6个涉黄平台,涉案5000余万元??阿里一p7员工为了证明自己确实年入百万,晒出了他的工资??开源已死?研究表明开源领域已不再增长!??字节跳动紧急澄清TikTok谣言,拟起诉B站up??电脑基础知识之一 固态硬盘(SSD)??人人都有用的金融知识之三 股票与重要指标