mysql 忘记密码 设置新的密码

来源:互联网 发布:mssql数据库 下载 编辑:程序博客网 时间:2024/04/27 10:34

===========================================================================================


首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:
/etc/init.d/mysqld status
mysqld dead but subsys locked
这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld stop,如果你不幸先用了pkill,那么就start一下再stop咯。
mysqld_safe --skip-grant-tables &
&,表示在后台运行,不再后台运行的话,就再打开一个终端咯。
mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user='root';   
mysql> flush privileges;
mysql> exit;   


===========================================================================================

首先将Mysql关闭      /etc/init.d/mysqld stop 

然后进入      vi  /etc/my.cnf

在  [mysqld]

--skip-grant-tables

#加入此语句  


然后连接mysql 

mysql -uroot -p


此处不需要密码

进入mysql表

use mysql ;

show tables ;   

可以看到它的表结构

select host,user,password from user ;

查看user表的信息


update user set password = password("new password")  where user = "root" ;


此处设置password 后面一定要有括号,应该是调用password函数  进行加密


如果在外面使用工具连接不上,  需要把host字段里的  localhost 或者127.0.0.1  这条记录的值改成  %


update user set host = "%"  where host = "localhost" ;


修改完之后一定要

flush privileges ;

quit  退出mysql


记得打开     vi   /etc/my.cnf

将上面加的那一句 

#--skip-grant-tables

注释掉


重启mysql 


/etc/init.d/mysqld restart 


 

grant all privileges on *.* to ciel@localhost identified by ‘ciel′;

添加用户,并给他访问在localhost上所有表的所有权限





0 0