Mac在docker安装Oracle 23ai,并使用navicat连接。

 本人初学没有任何基础,撞了很多坑,所以写这篇文章

(不保证所有步骤没有问题)

数据库手册(oracle官方只给linux教程无力吐槽,网上还有说甲骨文和苹果关系很不好的说法,不知真假):Oracle Database Security Guide, 23ai

一、官网下载docker

1,第一步下载

Docker官网地址:https://www.docker.com

直接安装对应版本

Docker Hub: https://hub.docker.com/

如需注册或者其他用处可以在docker hub中进行,本文章对docker不做任何额外操作

2,第二步检查版本

上面红圈可以打开docker下面可以查看版本

这里可以看看自己的docker版本

(1)图形版

 (2)终端版

docker --version

二、下载oracle 23ai

1,第一步下载

看到这篇文章大概找了很久了,其他下载方式不做说明自行选择,只做官网的。(可以自行测试docker hub里的oracle镜像)

镜像拉取地址:Database Software Downloads | Oracle 中国

下滑复制

docker pull container-registry.oracle.com/database/free:latest

在终端粘贴,等待下载完成,我已是最新的,就不做下载展示了

 下载完成可以查看

docker images

2,第二步创建容器

接下来开始创建容器,可以代码创建,也可以直接图形界面创建,这边省事而且网上教程好像比较少,就以图形界面为主了。

玩票性质,没考虑可能的问题,需要可以看看这篇:Docker安装Oracle数据库(不是mac)

sudo docker run -d -p 1521:1521 --name oraclefree container-registry.oracle.com/database/free

sudo为高级权限,输入后会要求输入电脑密码(锁屏密码,且不会显示输完回车就行)

红框为端口映射具体为<主机>/<容器>,没事不要改很多教程都说不要改,我也不知道会发生什么

橙框为自己想起的名字,随便起,这里以oraclefree为例

蓝框为上一步最后包名

接下来是图形界面

右边红框按下跳出左边弹窗,点开下箭头改一下设置

第一个红框为容器名,不填自动生成,我这里改成了oraclefree

第二个框为端口,我这里不改了改成1521改成1521改成1521(不要问,问就是翻车了)

下面为环境变量,不会配目前也不需要😁

然后run就好了

3,第三步查看运行的容器

按理来说可以直接进容器内部界面,但还是写一下怎么进去好了

这样就是运行成功了

接下来是终端界面

docker ps

有点乱,拉长一下

记住红框框住的部分,后面会用到

到这边,准备工作算是结束了,下面就是数据库部分了。

三、数据库基础配置

1,前情提要

首先要知道的是,很多教程里都有默认密码,不知道其他的怎么回事,这里一个密码都没有,只有账号,没有密码!!!这很重要,我卡了很久,后来才知道他没初始密码。。。同时密码要8位以上。

这里不需要操作,只是展示一下我是怎么发现的,不知道这个文件夹是干什么的,但他确实让我恍然大悟。翻译软件一照,全是非法零长度字符

虽然官方安装手册只有linux版本的但他确实给了东西不是吗(这么重要的事其他地方提一下啊)

官方linux版安装手册Installing Oracle Database Free

好吧,也有可能是锁了,锁了的话用这个

ALTER USER ANONYMOUS PASSWORD EXPIRE ACCOUNT LOCK;

不会用的话后面会用到类似的,在那个地方使用就行,多的我也不懂。

手册里的方法:Keeping Your Oracle Database Secure(不是安装手册)

(可怜我这么差的英语)

这下真的要开始了

2,开始配置

首先是终端的,还记得上面的id吗,现在要用了。

框出来的就是id,把我这个替换成你自己的(doker ps中显示的)

docker exec -it 9c631187d250 /bin/bash

前面的意思看别人的文章吧,我也不太懂,后面的应该是路径或者对应的command?(我猜是对应的下图)不懂,想了解自己找找吧。

这行代码的意思就是进入容器环境

图形界面端就简单多了😁点一下就好了

确认自己终端的代码行现在是这样的,它表示的是进入shall容器,与容器内的sh-4.4$是对应的

3,说明

特意单开一步强调!后面操作为新手操作,不知道有没有什么行业默认规定,或者有没有与更高级操作相冲突的部分,很多操作可以主要看别人的了,我这简单看完就行!!

我在这里使用的网上的教程,试了各种所谓的默认密码都不对,全是报错

就像我前面说的,这里其实压根就没有密码,需要自己设。

这里先贴上网上的基础代码

sqlplus /nolog   --登录
conn /as sysdba  --
alter user system identified by system;--修改system用户账号密码;
alter user sys identified by system;--修改sys用户账号密码;
create user test identified by test; -- 创建内部管理员账号密码;
grant connect,resource,dba to yan_test; --将dba权限授权给内部管理员账号和密码;

4,创建用户

首先进入

sqlplus / as sysdba

docker内:

终端内:

 

接下来我创建一个system用户,理论上来讲应该不需要?大家自己决定,如果创建,密码可以设成Oracle123大写+字母+数字+至少八位虽然但是之前我没按这个要求设也成功了

给大家贴上怎改

alter user system identified by Oracle123;

user后面的system是用户名,by后面的是密码,所以整个的意思是修改system用户账号密码;

(记得带英文 ; )

下面这行意思是成功了,不成功我记得会出现一个2?

然后创建用户

create user c##yls identified by 123456;

看到上面的报错了吗,是的,这里必须带上c##

文章在这:基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法_oracle docker 镜像-CSDN博客

我这不创建PDB用户有需要的可以跳转

接下来是给权限(理论上完全不给好像也行)

grant connect,resource,sysdba to c##yls;

 在sysdba里不让给db权限,我这里直接不给了,有需要自己试一下怎么搞。可以看一下这两篇:

在 Docker 中安装 Oracle 数据库_docker安装oracle-CSDN博客

oracle如何创建用户-Oracle-PHP中文网

grant connect,resource to c##yls;

到这里差不多了,后面就是查看一下了。

5,必要查看操作

前置知识:https://www.cnblogs.com/lcword/p/7421622.html

这里先看一下容器的数据名和实例名,很重要!!!

select name from v$database;
select instance_name from v$instance;

 记住这个free!

先退出,再看监听:

exit
lsnrctl status;

只怪我不懂,还在到处找sid和服务名。。。

四、navicat测试连接

连接名随便填123都可以

主机名可以填:localhost、127.0.0.1,这两个都是代表宿主机随便选

端口就是1521

SID填你上一步看到的实例名

用户名就是自己设的

到这里就结束了,翻车一次,吓死我了

  • 16
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值