Oracle从10的企业级版本开始就不在对Mac进行相关技术支持和运维服务,采用docker的方式安装orcal。
一.安装docker
参考文档:https://www.runoob.com/docker/macos-docker-install.html
采用命令行的方式安装
brew install --cask --appdir=/Applications docker
遇到的问题
-
Error: /usr/local is not writable.
解决方案如下:
首先卸载已有的homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
重新安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
其中/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
执行比较慢,需要等待,因为这个需要外网下载内容。
参考:https://www.cnblogs.com/shmily2018/p/9237790.html
- 安装brew的时候失败了,提示:
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443
使用外网链接安装,代码如下:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
参考:https://blog.csdn.net/fgx_123456/article/details/109529180
二. 通过Docker来安装Oracle11g
在命令行里面搜索oracle
docker search docker-oracle-xe-11g
下载安装
docker pull deepdiver/docker-oracle-xe-11g
把镜像转化为容器,使用端口1521进行映射
docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g
三. 配置数据库
进入容器内部的命令如下:
docker exec -it 你的容器Id(可通过docker ps命令获得) /bin/bash
通过sqlplus进入oracle
sqlplus system/oracle
创建用户
create user wenbin(用户名) identified by password(密码) ;
查询创建好的用户
select * from all_users;
在创建完新用户之后,需要对该用户进行授权,该用户具有什么权限都是通过自己指定的,这也是为什么推荐使用自定义用户登录数据库的原因,sql如下:
grant connect,resource to WENBIN;(这里需要将用户名大写,否则授权不成功)
connect表示具有连接数据库的权限;resource表示具有操作数据库的权限
参考文档:https://blog.csdn.net/qq_36314960/article/details/100111935
四. 连接数据库
通过Navicat软件链接数据库,下载链接
问题1. 提示文件损坏无法打开
执行下面的语句,注意下面的安装路径替换成自己的实际安装路径。
sudo xattr -r -d com.apple.quarantine '/Applications/Navicat Premium.app'
参考链接:https://blog.csdn.net/weixin_58276266/article/details/118445423
问题2. Service Name的填写
连接数据库,注意:下面service name填写XE,这个可以通过命令查询相应的service name
查询service name的命令,在oracle的命令窗口执行:
select INSTANCE_NAME from v$instance;
参考链接:https://www.cnblogs.com/lixuwu/p/7127148.html
五. docker的一些简单命令
运行容器:docker run -it 镜像名 /bin/bash
退出容器:exit
或者 Ctrl+P+Q
查看容器:docker ps -a
查看运行的容器:docker ps
重启容器:docker restart 容器ID
重启容器后进入交互式:docker start -i 5c6ce895b979
进入容器:docker attach 容器ID
docker exec -it 容器ID /bin/bash