这几天买了一台 Macbook Air M1 玩玩,学校上课的时候要用 OracleXE 11g 数据库,但是软件没有提供 macOS 的版本,几经周折终于折腾成功,在这里写下折腾的过程。
1.安装 homebrew
一开始在这一步就栽跟头了,macOS 默认用的终端软件是 zsh,但是官方的似乎是给 bash 准备的,安装了之后终端跑不了 brew。因此改为使用下面的命令安装:
|
|
安装的时候使用中科大下载源,等待安装完成。
2.安装 Colima
运行以下命令,安装 colima:
|
|
然后运行以下命令,创建一个运行环境:
|
|
3.安装 Docker
使用 brew 安装。运行以下命令:
|
|
等待安装完成。
4.设置 Docker 容器
先运行以下命令登录 Docker:
|
|
按照提示登录。然后在终端中运行以下命令:
|
|
等待拉取镜像并安装完毕。
5.进入 Docker 容器,验证是否安装成功
首先运行以下命令,获取容器的 ID:
|
|
你可以看到类似以下的输出:
|
|
cdd8e2328ef2就是需要的容器 ID。然后运行以下命令,进入容器内部的命令行,其中cdd8e2328ef2替换为你自己的容器
ID:
|
|
然后输入以下命令:
|
|
如果一切正常,应该可以看到以下输出:
|
|
这样就安装好了。
可能遇到的一些问题
Q1: 使用 brew 安装 docker 后,配置时提示以下错误信息该怎么办?
|
|
A: 运行以下命令卸载掉 docker:
|
|
然后前往 Docker 官网下载安装 Docker Desktop 作为替代。
Q2: 安装 Docker Desktop 后,终端显示找不到 docker 命令该怎么办?
A: 用 vim 编辑~/.zshrc(如果没有就新建一个),加入以下行保存:
|
|
然后运行以下命令,使更改生效。
|
|
Q3: 容器默认的用户名,密码,服务名是什么?端口是多少?
A: 用户名:system;密码:oracle;服务名:XE;端口:1521。
Q4: 我想使用 Navicat 查看数据库中的内容,连接信息填写无误,但是连接时显示“未加载 Oracle 数据库”,该怎么办?
A: 在访达中右键 Navicat,选择显示简介,勾选使用 Rosetta 运行后保存即可。
Q5: 使用 sqlplus 登录数据库后,箭头不能被正确识别,按下后显示转义字符
A: 先在容器中运行以下命令安装rlwrap:
|
|
然后改用以下命令登录:
|
|
一些碎碎念
不要使用网上那个 deepdiver 的镜像,好像因为镜像太老了 docker 根本拉不下来。
不知道为什么 Docker Desktop 显示不了用上面方法创建好的容器,而且 Docker Desktop 里创建的容器也运行不了,后来发现新的 Docker 环境在 Colima 的文件夹下,那应该就是因为这个 Docker 被装到了 Colima 的环境里导致软件不能直接读取。