首页 > 代码库 > oracle 12c 安装指南(各种问题总结)

oracle 12c 安装指南(各种问题总结)

下一学期要学习数据库的知识,趁着敲代码之余,安装著名的oracle来放松一下

1.首先从官网下载安装包http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html这里我提供的是官网的下载地址,直接打开后选择对应的操作系统即可下载。(右上角有切换中文选项可以更清楚的了解版本信息)

2.下载完成后,解压,然后点击安装即可(因为我安装的是12c,我会介绍这个版本安装会出现的问题与解决方案)。技术分享

 

,3,开始安装:

 电子邮件不填,下面把对号去掉,然后下一步。(可以不去,我怕麻烦所以去掉了)

技术分享

     4,创建和配置数据库,直接点击下一步

技术分享

5,默认桌面类,直接点击下一步(我安装的是服务器类,功能比较完整,推荐服务器类)

技术分享

6,选中创建新的windows用户,用户名跟密码自己取,取个简单的比较好,容易记住。填好之后点击下一步,可能会弹框说你的口令跟规则的不一样,

    直接点击是就行了。

技术分享

7 这里的目录可以自定义,选一个内存空间比较大的盘安装,如果内存不足的话会导致后面无法安装的。口令就是你之前

输入的哪一个。我没试过弄个不一样的。点击下一步。

技术分享

 有如下这种弹框直接点是就可以了。

技术分享

9.这个时候就会检查内存什么的是否符合了,此时可能会出现path路径问题,也就是系统变量中的path文件过长,可以打开后删除一些,不过不建议这么做,如果出现此问题先忽略,等会我会讲述手动配置方案。

技术分享

10 检查完通过之后,会给你这个信息,你可以截图保存一下,以后可能会用到。点击安装。

技术分享

11,之后就是耐心等待安装了。

技术分享

12,接着会弹出如下框出来,点击口令管理。去设置口令。这一步最为关键,我第一次就是不小心忽略了这个而花费了大量的时间去查阅资料才解决了这个问题,如果你也不小心关掉了这个界面,不用慌,不用去重装,等下面我会提供解决方案,下图是正常过程。

技术分享

13,SYS SYSTEM之后就是你要用到的用户了。你可以填写口令,不过一定要记住。之后的oracle链接都是用户跟口令通过才可以链接成功,不填的话会默认为你之前的口令。这里我没有填,直接点击确定。

技术分享

14,点击确定。

技术分享

15,这下你就安装成功了。点击关闭就可以了。

技术分享

16,运行哪里像输入cmd一样输入sqlplus 会弹出一下这个

输入米的用户名跟密码就可以了,也可以这样输入:SYSTEM/123456 ,123456只是列子,就是你的密码

显示一下这个就说明你成功安装了。

技术分享

以上就是oracle12c的全部安装流程了如果按照上图所示显示 已连接,那么恭喜你顺利的安装了Oracle;

如果并不能出现已连接字样,那么就要提一下我前面的两个伏笔了。

1.首先是忽略的环境变量问题

打开win+r窗口后输入sqlplus.exe会提示找不到文件,这就是环境变量问题,相信安装过java jdk的都应该有所利了解。

解决方案:我的电脑(右击)->属性->环境变量->下面有个系统变量->找到path(双击)->新建(目录是你自己设定的Oracle的安装位置这是我的path内容:E:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN,在文件管理器中根据这个目录依次找到admin,然后复制进path里的新建框)。

技术分享

环境变量配置正确即可出现此窗口。

2.忘了配置用户口令或没有建立用户scott

网上的教程多为oracle 11g,而12c 又有所不同,我只讲操作方法,具体原理不在细述,感兴趣的可以度娘。

解决方案:因为没有普通用户,所以我们就新建一个。

方法如下:

一.如果没有配置口令按如下方法操作:

1.进入运行窗口或者命令行,输入sqlpus;

 2.输入用户名:sys;

输入口令:sys as sysdba;   //注意不要丢失空格,输入口令是不能看到的所以尽量不要敲错

 3.输入alter user scott account unlock;

用户已更改

 4.输入commit;//提交数据之意

提交完成

  5.输入 conn scott/tiger

已连接。

 二.如果提示用户不存在

1.进入运行窗口或者命令行,输入sqlpus;

 2.输入用户名:sys;

输入口令:sys as sysdba;   //注意不要丢失空格,输入口令是不能看到的所以尽量不要敲错

一、验证scott用户是否存在

用oracle用户登录 su - oracle ,之后用sys用户登录数据库

$sqlplus / as sysdba

SQL>conn scott/tiger

ORA-28000:the account is locked

此时说明soctt用户被锁定或者不存在,先解锁试试

$sqlplus / as sysdba

SQL>alert user scott account unlock;

ORA-01918: user scott does not exist

此时说明scott用户不存在

添加scott用户

1.我们以SYS用户重新连接

SQL>conn sys/密码 as sysdba   //密码默认sys

2.执行scott.sql文件     

SQL>@F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql

这样scott用户就被添加进来,默认密码是tiger

SQL>conn scott/tiger 连接成功       //我是属于那种添加后也没法连接成功的情况,所以我新建了用户C##scott

SQL>SHOW USER;

USER为“SCOTT”

3.如果想修改scott的默认密码可以执行下面命令(先以sys权限登录:sqlplus / as sysdba)

修改scott的登录密码

SQL> alter user scott identified by tiger;

但是在12版本中有一点很值得注意,那就是新建用户的方法:

create user c##scott identified by tiger   //用户名必须以c##开头 

 然后授权。//方法在下文

1.用户登录:用户名:scott,密码:scott

1.Oracle中的各个用户如下:

0.数据库统一管理账号:orcl

 

1.普通用户:用户名:scott,密码:scott

2.普通管理员:system,密码:system

3.超级管理员:用户名:sys,密码:sys

2.为了便于记忆,用户名和密码一样

2.修改用户口令,

1.在doc窗口修改

1.此操作必须要在system这个账号下才能进行,否则没有权限,在这个账号下可以修改任何用户的口令

 

2.语法为:alter user 用户名 identified by 新口令;

如:alter user system identified by system;

3.当回车后出现用户已更改,则表示修改成功

2.在sqlplus中修改

1.以管理员身份登录

2.执行sql语句

如:alter user system identified by system;

3.对没有解锁的用户进行解锁并修改口令

1.在doc窗口修改

1.基本语法:alter user 用户名 account unlock;

如:alter user hr account unlock;

2.该操作也必须要在system用户下进行操作

2.在sqlplus中修改

1.以管理员身份登录

2.执行sql语句

如:alter user hr account unlock;

 

 下面是一些操作:

1,创建表空间

create tablespace hxzg_data

logging

datafile ‘C:\app\data\hxzg_data.dbf‘

size 50m

autoextend on

next 50m maxsize 20480m ;

2,创建用户

create user db_hxzg identified by 123 

default tablespace hxzg_data;

3,复权

grant resource,connect to db_hxzg;

4,给其他用户访问权限(db_hxzg以DBA权限登录)

grant select any table to sun;

 

创建

create user sun identified by 123;        //创建用户

alert user sun identified by tiger;      //修改密码

删除

drop user sun cascade;            //删除用户及对象

drop user sun;                        //删除用户

授权

1、默认的普通用户sun默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限

grant create session to sun;            //授予sun用户创建session的权限,即登陆权限
grant unlimited tablespace to sun;  //授予sun用户使用表空间的权限
grant create table to sun;              //授予创建表的权限
grant drop any table to sun;                //授予删除表的权限
grant insert any table to sun;               //插入表的权限
grant update any table to sun;             //修改表的权限

grant all to public;                         //这条比较重要,授予所有权限(all)给所有用户(public)

2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

  

  grant select on tablename to sun;//授予sun用户查看指定表的权限

  grant drop on tablename to sun;//授予删除表的权限

  grant insert on tablename to sun;//授予插入的权限

  grant update on tablename to sun;//授予修改表的权限

  grant insert(id) on tablename to sun;

  grant update(id) on tablename to sun;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update

  grant alert all table to sun;//授予sun用户alert任意表的权限

撤销权限

  基本语法同grant,关键字为revoke

查看权限

  select * from user_sys_privs;//查看当前用户所有权限

  select * from user_tab_privs;//查看所用用户对表的权限

权限传递

  即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:

  grant alert table on tablename to sun with admin option;//关键字 with admin option

  grant alert table on tablename to sun with grant option;//关键字 with grant option效果和admin类似

角色

  角色即权限的集合,可以把一个角色授予给用户

  create role myrole;//创建角色

  grant create session to myrole;//将创建session的权限授予myrole

  grant myrole to sun;//授予sun用户myrole的角色

  drop role myrole;删除角色

 

 

 

oracle 12c 安装指南(各种问题总结)