下面,根据不同用户丢失密码进行解决,情形可区分为三种:
一、如果sys用户与system用户的密码是完好的,丢失了其他用户的密码,那么可以用sys或者system用户登录系统,然后利用alter user命令进行更改 *** 作(以scott用户密码丢失为例)
SQL> connect sys/sys_passwd as sysdba SQL> alter user scott identified by new_passwd; 用户已更改。 SQL> conn scott/new_passwd as sysdba;已连接。SQL>
二、如果是sys用户与system用户,其中某一个丢失了密码。那么可以用另外的那个账号登录系统,然后利用alter user命令进行更改 *** 作。
三、如果sys用户与system用户的密码都丢失了。那么不能利用利用alter user命令了,这个命令已不能解决问题了。在这种情况下,需要更高级的工具,而这个工具oracle已经自带了,那就是orapwd工具,在cmd中可直接运行。
C:\Documents and Settings\Administrator>orapwd file=D:\oracle\product\1020\db_1\database\pwdctcsysora password=new_passwd
C:\Documents and Settings\Administrator>orapwd file=D:\oracle\product\1020\db_1\database\pwdctcsysora password=new_passwd
OPW-00005: 存在相同名称的文件 - 请删除或重命名
需要说明的是,在运行这个工具之前,在D:\oracle\product\1020\db_ 1\database\目录下是没有pwdctcsysora这个配置文件的。在运行之后,系统会马上自动生成这样一个文件。1、以SQL Server2008为例,首先以超级管理员administrator账户登录到电脑,然后打开据库SQL Server2008至登录界面。
2、然后选择windows身份验证(注意:必须是超级管理员账户哦,否则是无法使用windows身份验证登录的)。
3、登录进去后找到安全性菜单,然后在登录名中找到要修改的用户。双击账户d出修改密码的窗口,然后选择“常规”在密码输入框中重新输入密码即可。打开mysqlexe和mysqldexe所在的文件夹,复制路径地址
2
打开cmd命令提示符,进入上一步mysqlexe所在的文件夹。
3
输入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法 *** 作了,此时可以再打开一个新的命令行。注意:在输入此命令之前先在任务管理器中结束mysqldexe进程,确保mysql服务器端已结束运行。
然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。
输入show databases; 可以看到所有数据库说明成功登陆。
其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数据库。
show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
输入select user,host,password from user; 来查看账户信息。
更改root密码,输入update user set password=password('123456') where user='root' and host='localhost';
再次查看账户信息,select user,host,password from user; 可以看到密码已被修改。
退出命令行,重启mysql数据库,用新密码尝试登录。
测试不带密码登录mysql,发现还是能够登陆上,但显示数据库时只能看到两个数据库了,说明重启之后跳过密码验证已经被取消了。
我这地方重启数据库之后之所以不带密码任然能够登录是因为我的数据库里存在设无须口令的账户。
mysql数据库密码忘记了,第一可以通过修改文件配置来重新设置密码,第二可以重新下载mysql就可以重新设置密码了。在我们使用数据库的时候通常都会使用root用户登录,所以就需要设置密码,但是这个密码是不可见的,而且在使用Navicat Premium连接数据库的时候也需要使用密码才可以连接。当我们忘记密码时,我们有两种办法来解决。
第一打开mysqlexe和mysqldexe所在的文件夹,复制路径地址,按win+R打开cmd命令提示符并进入刚刚所复制的路径中,输入命令mysqld --skip-grant-tables,然后敲回车,此时就跳过了用户验证过程,注意:输入此命令之后该命令窗口就无法 *** 作了,此时应该从新再打开一个新的命令窗口。在输入此命令之前先在任务管理器中(ctrl+alt+del)结束mysqldexe进程。然后直接在命令行输入mysql,不需要带任何登录参数和密码,直接回车就可以登录上数据库。 输入show databases;可以看到所有数据库的内容就说明已经登录成功了,就可以使用了。如果想更改root密码,输入update user set password=password('123456') where user='root' and host='localhost'; 就可以修改密码了。
第二可以将电脑中的mysql文件夹和程序都删除,重新下载并配置mysql,这样你的数据库就是一个新的无密码的数据库了。
到服务器端使用超级用户(sysdba)登陆:
sqlplus /nolog
conn / as sysdba
然后修改密码;
alter user XXXX identified by XXXXXX
sqlplus的密码就是oracle用户的密码。用系统用户比如windows的administrator,或UNIX/LINUX的oracle用户进入,然后用sqlplus / as sysdba进入,然后就可以用命令修改相关用户密码。ALTER USER 用户名 IDENTIFIED BY 密码。
进入mysql安装目录的bin文件夹(客户都没设置环境变量找不到mysql命令只能到那个目录)
比如:D:\Program Files\MySQL\MySQL Server 50\bin>
1暂停mysql服务;
2忽略授权问题;
3另一个命令行进去myql;
4重置root密码并刷新授权表;
5任务管理器杀掉mysql进程;
6重启mysql服务;
>net stop mysql
>mysqld --skip-grant-tables
开另外一个命令行窗口,一样进入那个目录
>mysql -u root -p
>update mysqluser set password=PASSWORD("新密码") where User="root";
>flush privileges;
任务管理器杀掉mysql进程
>net start mysql
#################################################################
vi /etc/mycnf 在[mysqld]添加
skip-grant-tables
/etc/initd/mysql restart
mysql
>update mysqluser set password=PASSWORD("新密码") where User="root";
>flush privileges;
/etc/initd/mysql restart
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)