导言(
环境:ubuntu14.0.3,mysql5.5.59
在进行开发的时候,修改数据库密码意外的是会经常遇到的操作,熟悉这一操作有助于提高开发效率与处理突发情况时的对应能力和反应速度,以下介绍ubuntu环境下没有图形化操作界面或一些辅助工具时的一些常用方法
一、知道原本密码的情况下修改
这是最轻松的情况。首先,你需要登入你的数据库,之后,你有两种方法修改你的密码
1. 使用set password命令
格式:
mysql> set password for 用户名@HOST = password('新密码')
例子:
mysql> set password for root@localhost = password('123456')
2. 直接更新用户表
mysql的密码都存储在mysql库里的user表里,更新之即可
例子:
mysql>use mysql;
mysql>update user set password=password('123456') where user='root' and host='localhost';
mysql>flush privileges; #更新权限,非常重要的一步
二、不知道原本密码的情况下修改
这就有点麻烦了,但并不是除了重装外无计可施。ubuntu系统下mysql会有一个默认的debian-sys-maint账户,这个账户的密码随着mysql的安装和重启而生成,保存在/etc/mysql/
下的debian.cnf
因此我们首先cat /etc/mysql/debian.cnf
,在里面找到密码,复制(太长了,一般人很难记住),然后使用这个账户的账户密码登录mysql,再按上述情况一的任一方法修改即可
三、不小心改掉了debian-sys-maint的密码....woc!
这是非常糟糕的情况,你会发现你甚至无法正常停止/启动MySQL,无论是使用修改后的密码还是原本的默认密码她都只会一遍遍地告诉你“Access Denied”.......这个账户关系到mysql的正常运行,请不要随意修改!但是凡事总有意外,毕竟这个账户的host也是localhost,于是....
但是不要方!我们还有最后手段:跳过账户验证的mysql安全启动
首先,停止mysql的运行,例如service mysql stop
然后,在你的命令行里键入mysqld_safe --user=mysql --skip-grant-tables --skip-networking
需要注意的是,在输入这行命令后,你就无法在命令行里输入任何命令了,因此为了执行后续的操作,我们可以重新打开一个命令行,然后输入mysql
,我们会发现我们成功的登录了进去
这个时候使用情况一的方法二重新设定密码即可,注意这个时候方法一是无法使用的
之后退出,重新启动mysql,这个时候应该就能用新设的密码登录了
总结
emm其实这么简单的东西没啥好总结的...祝大家永远不会遇到后两种情况吧www