日期:2014-05-16  浏览次数:20724 次

linux (红帽子) 下的Mysql密码失效的问题
我在linux下装了mysql,开始默认密码是空,都好用,后来我用命令修改密码如下
UPDATE   user   SET   password= '123456 '   WHERE   user= 'root ';   (后来发现此命令格式不对,但是当时没有注意就过去了).结果再次登陆mysql的时候空密码仍然可以用,但是use   mysql   会失败,用123456也不好用了.

郁闷,于是按网上的方法:如下


一、以系统的root用户(什么,你的系统的root用户密码也忘了。那只好看我另外一篇linux下忘记root用户的解决办法了先解决这个问题)登陆系统,进入终端  

  [root@localhost   /]#  

  二、杀掉mysql进程  

  方法1、[root@localhost   /]#killall   mysqld  

  方法2、[root@localhost   /]#ps   -aux     //查看所有进程,找到mysql进程的pid  

  然后  

  [root@localhost   /]#kill   pid       //pid是mysql的进程号  

  三、用--skip-grant-tables参数启动mysqld  

  [root@localhost   /]#/usr/local/mysql/bin/mysqld_safe   --skip-grant-tables&    

  //   其中/usr..../bin是我的mysql安装目录  

  [root@localhost   /]#/usr/local/mysql/bin/mysql     //进入mysql  

  mysql>   use   mysql       //切换到mysql   database

  mysql>   UPDATE   user   SET   password=password( '123456 ')   WHERE   user= 'root ';  

  //将root密码该为123456了  

可是当我重启动mysql   ,仍然没有改过来,用123456不能登陆,不知道为什么,高人指点

------解决方案--------------------
UBUNTU下这么做,redhat应该差不多吧:
忘了mysql的root口令怎么办
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysqladmin -u user password 'newpassword ' '
sudo mysqladmin flush-privileges

修改mysql的root口令
sudo mysqladmin -uroot -p password '你的新密码 '
------解决方案--------------------
update mysql.user set password = old_password( '123456 ') where username= 'root '
用这样的方式改密码试试
------解决方案--------------------
你的mysql是用mysql用户来启动的吧,
看看mysql用户对数据库文件的权限是否设置得当。
就是:chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
要不重新按照操作重新安装一次看看。