mac m1使用docker安装oracle数据库

本学期开始学习数据库原理,老师课上讲到课堂作业使用的是oracle 11g,然而我去官网却发现只有Windows和Linux版本的,并没有发现macOS的安装方法。在网上了解到,可以利用docker来安装部署,故尝试。

一.docker安装

macOS目前主流的安装方法有两种,利用homebrew安装或者直接docker官网下载dmg文件安装。

1.homebrew安装

#安装homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" #利用homebrew安装docker
brew cask install docker

2.官网下载

顾名思义,去下载安装就完事了。

二.docker换源

docker默认源在国外,在国内访问下载很慢,所以将其换为国内的源。

1.打开docker

在启动台中找到小鲸鱼图标的docker,并打开它。

2.顺手改一下资源分配

可根据自己的情况修改docker可分配资源。

3.换源

与网上绝大部分教程(讲Windows如何换源的)不同的是,macOS储存docker文件的路径在:

/Users/{YourUserName}/Library/Containers/com.docker.docker/Data

先在终端中cd打开该文件夹,然后使用vim打开daemon.json文件

cd /Users/{YourUserName}/Library/Containers/com.docker.docker/Data
vi daemon.json

在该文件中加入国内源的配置:

{
"registry-mirrors" : [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com",
"https://mirror.ccs.tencentyun.com"
]
}

然后:wq保存退出

最后重启docker

三.从镜像源中下载oracle镜像

在直接根据网上教程使用以下指令

docker pull alexeiled/docker-oracle-xe-11g

安装时,出现了以下错误,未找到或者未登陆。

所以在此又去注册了一个docker账号并登陆

然而在登陆后依旧无法使用上面那个指令拉取,于是再找方法。

1.搜索镜像

先使用指令搜素远程仓库中的Oracle镜像

sudo docker search docker-oracle-xe-11g

2.拉取镜像

选择一个star最多的镜像进行拉取

docker pull deepdiver/docker-oracle-xe-11g

3.拉取成功

静候下载,挺大的(2.7Gb)

四.启动镜像为容器

docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

然而,又出现了警告:

我猜测出错的原因应该是苹果的m1芯片架构不同导致的,去网上寻找了多种解决方案后,发现了以下方法可行:

#在环境变量中设置默认使用linux/amd64平台
export DOCKER_DEFAULT_PLATFORM=linux/amd64
#重新启动镜像为容器(然后在此之前启动过并报了waring的,需要先将之前启动的容器删除
docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

五.进入容器并建立连接

1.查看容器

docker ps

记下这个容器ID

2.进入容器

docker exec -it {容器ID} /bin/bash

3.进入Oracle

sqlplus system/oracle

然而,又出现了新的问题:连接不上。

在网上查阅资料后发现,依旧是m1芯片架构问题所导致的(oracle为啥不适配!!!)

解决方案如下:

利用Colima运行转译的虚拟机

#使用homebrew安装colima
brew install colima
#启动colima
colima start --arch x86_64 --memory 4

(此处我的docker崩溃了无法打开,在重装docker后使用原来的流程就可以正常操作了)

在解决问题后,成功打开了oracle数据库

4.创建用户授予权限

在上面出现的命令行中输入指令创建用户:

CREATE USER YS IDENTIFIED BY 123456;
#YS是用户名,123456是密码

授权:

GRANT CONNECT, RESOURCE, DBA TO YS;
#YS是用户名

六.后话

至此,在我的m1 macbook air上成功地部署了oracle。什么也不会开始看网络上的教程部署,干了半天,白天干到黑夜(后面终端都黑了),可以说,这是相当麻烦,由于架构问题导致了很多问题(oracle为什么不适配!!!)。

总之,最后终于是成功部署了,虽然进去之后两眼一抹黑,啥也不会操作,甚至找不到怎么关闭它……

mac m1使用docker安装oracle的更多相关文章

  1. mac系统用docker安装oracle数据库

    oracle没有mac可用的版本,最好的办法是通过docker安装 一.下载docker 1.通过brew下载 brew cask install docker 2.手动下载(需要vpn) https ...

  2. Docker | Mac 通过 Docker 安装 Oracle

    Docker | Mac 通过 Docker 安装 Oracle 前言: Oracle 10g 以后就不支持 Mac 版本,因此 Mac 用户需要安装的话可以通过虚拟机或者 Docker 1.在 do ...

  3. docker安装oracle

    最近工作上面遇到一个性能相关的问题,大体描述一下: 批量任务执行的过程中导致数据库sql执行时间过长,查看之后是由于批量任务占满数据库连接池导致的,至于为什么批量任务会不受系统控制导致连接池占满就不说 ...

  4. docker 安装 oracle

    docker 安装 oracle 部署链接:https://www.linuxidc.com/Linux/2017-03/141760.htm 本次使用docker安装oracle 1.搜索可使用的镜 ...

  5. 全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决

    目录 全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决 1. 拉取阿里镜像oracle 2. 创建初始化数据 ...

  6. 使用Docker安装Oracle数据库

    在很多时候,我们需要在本地安装Oracle数据库,但是整个安装的过程时间非常长而且安装文件大,那么有不有更好的办法来安装Oracle数据库既能减少安装的时间而且还能够快速进行部署呢?答案就是使用Doc ...

  7. Docker 安装Oracle

    1.使用docker 命令搜索oracle 镜像,前提是已安装了Docker docker  search oracle 2.下载相应版本的oracle 镜像 docker pull sath89/o ...

  8. ubuntu docker 安装 oracle

    1.ubuntu 安装docker sudo apt-get update sudo apt-get docker.io 2.docker下载oracle镜像 sudo docker pull wna ...

  9. Win10系统使用Docker安装oracle并通过Navicat for oracle进行登录

    一.安装Docker Linux系统可以直接采用命令进行Docker安装: Win7系统安装Dokcer实际通过Boot2Docker在Windows下安装一个VirtualBox来实现: Boot2 ...

  10. mac系统下docker安装配置mysql详细步骤

    上文介绍了MacOS安装Docker傻瓜式教程,安装好后第一件事就决定把本地数据库迁移过来,那么首先就得安装mysql,下面就开始我们的安装之旅吧. 一.docker配置镜像加速器 我们使用docke ...

随机推荐

  1. Pytorch-tensor的激活函数

    1.激活函数 激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题.因为很多问题都不是线性的,你只有给它加入一些非线性因素,就能够让问题更好的解决. 函数1:RE ...

  2. lattice crosslink开发板mipi核心板csi测试dsi屏lif md6000 fpga 常见问题解答

    1. 概述 CrossLink开发板,是用Lattice的芯片CrossLink 家族系列的,LIF-MD6000-6JM80I.该芯片用于桥接视频接口功能,自带2路MIPI硬核的功能,4 LANE  ...

  3. 《c#高级编程》第5章C#5.0中的更改(十)——异步编程

    C#异步编程是一种在单线程上实现并发执行的技术,它通过使用异步方法.任务等高级概念,使得应用程序能够更好地响应用户操作.处理大量数据和操作外部资源.C#异步编程的核心概念包括: 异步方法:使用 asy ...

  4. [ABC342D] Square Pair 题解

    [题目描述] 给定一个长度为 \(N\) 的非负整数序列 \(A=\left(A_1,\cdots,A_n\right)\).求满足以下条件的整数对 \(\left(i,j\right)\) 的数量. ...

  5. Quick BI产品核心功能大图(五)移动端:让数据在更多业务场景中流通

    ​简介:将数据更好的融入日常工作中,一个重要的前提条件就是多端多渠道的数据触达和办公协同能力. Quick BI凭借移动端交互体验,帮助用户随时随地便捷查看报表,并通过在线协同方式,追踪策略的执行落地 ...

  6. Hologres揭秘:如何支持超高QPS在线服务(点查)场景

    简介: 本期我们将揭秘Hologres如何支持超高QPS在线服务(点查)场景. Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼 ...

  7. dotnet 6 已知问题 ManualResetEventSlim 的 Set 方法抛出空异常

    本文记录一个 dotnet 6 已知问题,此问题预计是在 .NET Framework 4.5 时就引入的,我没有考古在 .NET Framework 4.5 之前是否还存在此问题.当前这个问题在 . ...

  8. MindSpore强化学习:使用PPO配合环境HalfCheetah-v2进行训练

    本文分享自华为云社区<MindSpore强化学习:使用PPO配合环境HalfCheetah-v2进行训练>,作者: irrational. 半猎豹(Half Cheetah)是一个基于Mu ...

  9. 使用.NET源生成器(SG)实现一个自动注入的生成器

    DI依赖注入对我们后端程序员来说肯定是基础中的基础了,我们经常会使用下面的代码注入相关的service services.AddScoped<Biwen.AutoClassGen.TestCon ...

  10. Linux中的info page

    Linux系统中除了使用man来查询命名或者相关文件的用法,还可以使用info命令.与man命令不同的是,info命令将数据拆成一个一个段落,每个段落使用单独的页面编写,同时页面中还有类似超链接的功能 ...