刚来公司时,我的这台电脑是前同事留下的,其中有很多项目,主管告诉我这台电脑里的东西都不要删。这是前提。
然后昨天在启动一个项目的时候需要数据库,这时我遇到了问题,给我电脑时开机密码告诉我是啥了,数据库密码没告诉啊。。我把桌面上这些东西全都翻遍了也没有有用的信息。
当然直接修改root密码是下策 ,我首先想试试如何知道密码是多少?于是参考了网上的一篇文章。
http://www.jb51.net/article/38473.htm
发现在输入命令taskkill /f /im mysqld-nt.exe
时并不能按照预期终止进程,那么可能有两种原因:
- 第一可能是环境变量没有设置好(我也懒得去查了),所以需要在Mysql的目录下执行
- 第二可能是在启动命令提示符的时候没有用管理员权限
那么现在就假设这两种情况都包含,问题又来了,这电脑Mysql装在哪里了?
其实很简单,可以借助命令
select @@basedir as basePath from dual
然后通过有管理员权限的命令提示符 输入上面文章中的命令 taskkill /f /im mysqld-nt.exe
正确结束进程
然后继续执行命令: mysqld-nt --skip-grant-tables
这时再新打开一个命令提示符,当然为了以防万一我们还是直接用管理员权限打开。
输入命令: mysql -u root
如果不想改密码,只是想看原来的密码的话。可以在命令行执行这个语句
select host,user,password from mysql.user;//即可查看到用户和密码
然后我们得到*B5178430570AD180E880BD5362872A49CD343F36这样一串密码,显然不对啊 于是去试着破解了一下查查原来是什么
结果挺令人失望,我难道要花钱去解密一个mysql5的密文只为了得到一个7位的root密码啊??
算了吧。。
如果要修改密码的话,在命令行下执行下面的语句
update mysql.user set password='这里填写你要设置的密码' where user='root';
完成这些操作后,继续在命令行运行
taskkill /f /im mysqld-nt.exe;//安全着想,先结束,因为现在这样是可以用mysql -u root 直接登录的
net start mysql;//启动mysql服务
至此就完成了。
这次这个密码不要忘记了。