安装mysql后经常会遇到没有初始化root密码,或者忘记root密码的情况。当然可以选择重装数据库,但是如果数据库里有很多已经建好的库,还有很多有用的数据。不如试试直接修改mysql的root密码,不到五分钟就搞定了。
第一步:
先把在运行的mysql停掉,可以通过service mysqld stop停掉服务。
第二步:
编辑mysql的配置,linux下一般在/etc/my.cnf这个位置。
在[mysqld]的配置项中加上skip-grant-tables,保存。
运行service mysqld start 启动mysql。
第三步:
通过命令 mysql -u root -p
提示输入密码的话,直接回车就进入mysql了。这时你是可以看到全部数据库的。
运行 show databases;
回车就能看到全部数据库了,运行 use mysql;
因为mysql跟数据库用户权限相关的表在mysql这个库中。
第四步:
执行sql更新mysql的root的密码。
update user set password=password(‘你想要的密码’) where user=’root’ and host=’localhost’;
如果你想更新全部root权限记录的密码,过滤条件中的host=’localhost’可以去掉。
一般不建议开放root的远程连接权限。
执行完后能看到命令行输出生效行数,这个要注意下。如果生效行数为0,说明在你的过滤条件下,没有记录。
第五步:
执行 flush privileges;
使得更新的权限数据立即生效。然后把/etc/my.cnf中的skip-grant-tables注释掉或者直接删掉。vi 非输入模式下,dd 可以删除单行。
执行 service mysqld restart 重启mysql。
第六步:
就可以用mysql -u root -p ,输出你刚才更新的密码,就可以用root用户登录mysql 了。
mysql的root 密码修改完毕。