您的位置:首页 > 数据库 > MySQL

mysql 忘记密码 设置新的密码

2015-08-01 22:32 549 查看
===========================================================================================

首先,你必须要有操作系统的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上所有表的所有权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: