忘了Oracle的sys用户和MySQL的root用户密码,解决方法

忘了Oracle的sys用户和MySQL的root用户密码,解决方法
2007年03月16日 星期五 09:44

作者:hexiong 
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://hi.baidu.com/hexiong/blog/item/b4acd72a85272d2cd42af1b1.html
经常碰到有人在论坛上问这个问题,干脆在这里总结一下。当然这里不主张采用所谓的“暴力”破解这类野蛮的方法。
首先,真想批评一下使用数据库的人,怎么连密码都忘掉了呢?

一、先看看MySQL

新装MYSQL默认搂ROOT密码为空
设置如下:mysql -u root mysql 
mysql> 状态下输入 update user set password=password('新密码') where user='root'; 
回显
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> 状态下输入 FLUSH PRIVILEGES;
回显
Query OK, 0 rows affected (0.00 sec)
mysql> 状态下输入 quit
退出 sql 

如果忘记了ROOT密码,要重置ROOT密码的话
设置如下:1. KILL掉系统里的MySQL进程;
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld --skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; 
mysql> flush privileges; 
mysql> quit
5. 重新启动MySQL,就可以使用新密码登录了。 

如果想修改现有密码 设置如下 : mysql -uroot -p password:输入你的旧密码 mysql>update mysql.user set password=PASSWORD('新密码') where User='root'; mysql> flush privileges; mysql> quit 重新启动MySQL,就可以使用新密码登录了。
当然这里其实可以使用更优雅的法子:
mysql有这么个命令:
mysqladmin -u root -p password 新密码
 

二、再看Oracle数据库
忘了sys密码,再修改sys密码,一般是通过生新生成密码文件来恢复

用工具orapwd创建新的口令文件.将文件保存到%ORACLE_HOME%/database目录下面,
ORAPWD FILE=%ORACLE_HOME%/database/PWDoral.ora password =admin

顺便借花献佛,手动创建一个Oracle实例及其数据库的方法如下:

1、备分数据库
2、产生并编辑InitSID.ora参数文件
3、创建实例
4、启动实例
5、创建数据库

1、原参数文件模板在C:/oracle/admin/orcl/pfile路径下,拷贝到C:/oracle/ora92/database(oracle默认参数路径)路径下。修改文件名,命名规则——init实例名.ora         如:initjind.ora
接下来修改initjind.org,如不确定的参数可以注释掉,这样oracle会使用缺省值。

2、创建实例:
                 命令:oradim -new -sid jind -intpwd 123456 -startmode auto
                            new——新建一实例  
                             sid——实例名
                             intpwd——sys用户的口令
                             startmode——自动打开数据库
                    命令执行后所做操作:新建立一服务,建立口令文件(C:/oracle/ora92/database/PWDjind.ORA),注册表中HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0增加四个键值。

# RAC的概念——多个实例对应一个数据库。两台计算机各装一个实例,对应同一个数据库,这个数据库放在阵列上。
#unix下没有注册表,不用执行创建实例命令,配置好参数文件放到指定位置,用orapwd命令创建一口令文件即可。

3、启动实例:
          set oracle_sid=jind
c:/>sqlplus /nolog
SQL>connect sys/123456 as sysdba
SQL> startup nomount
#实例启动慢,是因为警告文件和日志文件路径在参数文件中填写错误。

4、创建数据库
          其实就是创建数据文件(system表空间的)、日志文件、控制文件(路径已在实例的参数文件中配置)。

输入命令:
create database jind
logfile group 1 'd:/jind/jind1a.log' size 4m,
               group 2 'd:/jind/jind12a.log' size 4m
datafile 'd:/jind/system1.dbf' size 200m
autoextend on next 10m maxsize unlimited
undo tablespace undotbs1 datafile 'd:/jind/undo1.dbf' size 50m
character set zhs16gbk
执行后显示:“数据库已创建。
5、安装数据字典视图:
@C:/oracle/ora92/rdbms/admin/catalog.sql
6、安装系统包及过程:
@C:/oracle/ora92/rdbms/admin/catproc.sql
查看:select username from dba_users;(查询用户)
                select tablespace_name from dba_tablespaces;(查看表空间)
7、安装用户资源集:
SQL>connect system/manager(必须用system安装,sys安装后将来可能会出现错误)
已连接。
SQL>@%oracle_home%/sqlplus/admin/pupbld.sql

 

#数据字典视图,大致分三类.DBA_??开头的是查询整个数据库中的对象,USER_???开头的可以查看用户拥有的对象.ALL_??开头的,用户可以访问的对象.

8、配置监听文件(也可以使用Net Manager工具配置)
  路径:C:/oracle/ora92/network/admin/listener.ora(服务器端监听文件)
         参数说明:GLOBAL_DBNAME=数据库名 SID_NAME=实例名 

     修改后重新启动监听服务,unix下用使用lsnrctl命令 进入后stop关闭监听,start启动监听
     C:/oracle/ora92/network/admin/tnsnames.ora(客户端监听文件)


  验证: 用system用户登陆,
       SQL> select instance_name from v$instance;
       INSTANCE_NAM
       ----------------
       jind

oracle实例管理

操作系统验证:
C:/oracle/ora92/network/admin/sqlnet.ora
必须有这行,SQLNET.AUTHENTICATION_SERVICES= (NTS)(意义不大)
创建口令文件:
orapwd file=口令文件名 password=口令 entries=数量(缺省值是5)其他用户加入到sysdba组,就具有了SYS一样的权限,所以也要写入到口令文件中。这个设置指定最多可以有5个这样的用户。   
windows下 口令文件名是pwdsid.ora  unix下:口令文件名是orapwsid.ora
 例如:

查看口令文件中的用户命令:

select * from v$pwfile_users;

数据库的启动过程:
关闭数据库命令:SQL> shutdown immediate
启动数据库命令:SQL> startup
启动到nomount状态:SQL>startup nomount  (读取参数文件)
启动到加载数据库状态:SQL> alter database mount;(读取控制文件)
启动到打开数据库状态:SQL> alter database open;(读取数据文件和日志文件)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值