版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434892
Mac OX 访问虚拟机 win 7 上的 Oracle 数据库
前言
刚刚入职,一直在培训关于 Java 的相关内容。今天讲到了 SQL 语句以及 Oracle 的安装使用,最后讲到如何用 eclipse 连接 Oracle。由于笔者抱着不折腾就会死的心理,前段时间趁着生日 Buff 买了一台 MacBook Pro,然而在 Oracle 10.2 版本之后,Oracle 在 MAC OX 系统上已经不提供支持了,笔者很蛋疼的在 MBP 上安装了虚拟机,在虚拟机上运行 Oracle,通过 MAC 上的 Eclipse 访问 Oracle 数据库。
总之,Mac 上对 Oracle 的操作是真的很蛋疼的,笔者一个完完全全的数据库小白,看了无数相关解答,生生被折磨了两天,才把 MAC 操作 Oracle 的跑通。明早依旧要上班培训,不管怎么着熬夜也要把这个事儿给总结出来……
参考网址:
《使用本机连接虚拟机的oracle步骤》
《理解虚拟机中的四种网络连接方式》
《VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别》
一. 虚拟机 win7 的安装
Mac 上可以安装虚拟机,笔者安装的虚拟机是 VirtualBox,选择 OS X 系统版本的 dmg 文件,下载并安装。
安装完毕后,再从网上下载一个 win7 的 ISO 文件。笔者的 ISO 文件是毕业前从学校内网上下载来的,不过基本上差别不大,随便找一个应该就行。
为 win7 系统分配空间和内存,笔者分配了 24GB 空间和 2GB 内存,这样的话也刚好够,可以以这个数据作为参考。
安装 win7 的过程省略。
二. 提前的准备
1. 安装虚拟机辅助工具
同样在 VirtualBox 的下载网址,找到 Oracle VM VirtualBox Extension Pack,这是一个 ISO 文件,下载完毕后,在虚拟机上挂载该 ISO 文件并安装。安装完毕后,选择重新启动 win7 虚拟机。
这个 ISO 文件安装后的效果,就是可以令虚拟机使用 MAC 主机的网络,并且为后续的共享文件夹做了前期准备。
2. 共享文件夹
共享文件夹是为了把文件从 MAC 主机传到 win7 虚拟机上。
首先,把需要共享的文件拖入 MAC 主机的共享文件夹中,共享文件夹和当前用户在同级目录下。笔者的共享文件夹如图所示:
然后,在 win7 虚拟机上开启网络共享。打开控制面板 -> 网络和Internet -> 家庭组 -> 更改高级共享设置,将网络发现与文件与打印机共享中的选项启用。
关闭 win7 虚拟机,在 VirtualBox 的列表中,选择设置 -> 共享文件夹,点击右面的绿色小加号,弹出共享文件夹对话框,在共享文件夹路径中选择其他路径,并选中之前的共享文件夹位置,且选中自动挂载。把前面的虚拟机辅助工具安装完毕并重启后,打开我的电脑,就会显示出 MAC 的共享文件夹。
但此时不能将该路径的文件拷贝进 C:/,所以此时进行一个映射。右击桌面上的我的电脑,选择映射网络驱动器,文件夹选中刚才显示出来的共享文件夹,点击完成,即可出现上图中的 Z:/ ,这个 Z:/ 中的文件即可复制进虚拟机中的 C:/。
3. 关闭 win7 虚拟机的防火墙
关闭 win7 虚拟机的防火墙,也是为了后续 MAC 主机在访问 win7 虚拟机的 1521 端口时不被拦截。关闭防火墙的步骤略。
三. Oracle 的安装
笔者在虚拟机中安装的是 Oracle 11g 版本。在 Oracle 下载地址中下载安装包(注意是两个解压包),下载完毕后,通过共享文件夹传给虚拟机。
在虚拟机中,正确解压两个安装包后,打开安装文件。一路点击下一步,只要在下图中设置正确密码即可。
较为漫长的安装过程完毕后,会出现一个 DataBase Configuration Assistant 界面,点击口令管理,将 SCOTT 用户的锁定解除。
注:
安装 Oracle 时,有两个高等级用户和一个常用用户
- 高等级用户:
- **普通管理员 SYS**:密码为安装 Oracle 时输入的密码;
- **超级管理员 SYSTEM**:密码为安装 Oracle 时输入的密码(平常尽量不用)常用用户:
代码语言:txt复制- 用户名:**scott**,密码:**tiger**
- 这个用户名历史悠久,使用这个用户是一个习惯;
安装完毕后,打开任务管理器 -> “服务”标签 -> 服务,将 OracleOraDb11g_home1TNSListener 和 OracleServiceORCL 打开,这样 Oracle 就启动完成了。
检测安装 Oracle 完成的方法:运行 win7 虚拟机的 cmd,输入指令:
代码语言:javascript复制sqlplus scott/tiger
之后即可进入 Oracle 的操作命令行,光标左面以 SQL> 开头,如下图所示:
如果在 DataBase Configuration Assistant 界面忽略了口令管理,也可以在命令行中激活 SCOTT 账户。
- 用管理员身份连接数据库,命令为:sqlplus system/密码(密码为安装 Oracle 时输入的密码)
- 然后输入两条指令:
- **alter user scott account unlock;**
- **alter user scott identified by tiger;**
四. 网络配置
用 MAC 主机连接虚拟机 win7 的 Oracle 数据库,还需要将网络成功配置。
首先我们需要将虚拟机的网络连接方式从默认的 NAT 改为桥接 (Bridged Adapter) 模式。关于几种虚拟机的网络连接方式,下图可以比较简练的说明。简单地说,NAT 模式下,只允许虚拟机向主机的单向访问,虚拟机而已访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。桥接模式 可以将虚拟机视为一个局域网内的真实电脑,具有具体的 IP 地址,所以虚拟机与主机之间可以相互访问。
具体更多内容可以参考:
《理解虚拟机中的四种网络连接方式》
《VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别》
改变虚拟机网络连接方式的方法:在 VirtualBox 的顶部菜单中选择 Devices -> Network -> Network Settings,在 Adapter1 中 Attached to 选择 Bridged Adapter。笔者改变连接方式时,虚拟机的 IP 也从 10.0.2.7 自动改到了局域网下的 192.168.2.207。
五. 测试 Eclipse 连接虚拟机下的 Oracle 数据库
运行 MAC 主机下的 Eclipse,新建工程。
然后右击新建的工程项目,选择 Properties -> 左边栏 Java Build Path -> 上标签 Libraries -> 右标签 Add External Libraries,添加 Oracle 提供的 JDBC 的 jar 包 orjdbc6.jar。
这个 jar 包放置在虚拟机 win7 系统安装 Oracle 的安装路径下,所以可以将该文件放到主机与虚拟机的共享文件夹中,从而拖进主机 Mac 的路径下,完成主机 MAC 的额外包添加。比如笔者使用的是默认 Oracle 安装路径,所以该 jar 包的路径就在:C:appGRQproduct11.2.0dbhome_1jdbcliborjdbc6.jar。
添加额外库成功后,如下图所示:
与 java 文件如下:
代码语言:javascript复制package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class Demo1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.2.207:1521:orcl","scott","tiger");
System.out.println(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行后,控制台会输出连接信息,如下图所示。
此时便代表 Mac 主机与 Win7 虚拟机的 Oracle 之间的连接建立成功。