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 
 要不重新按照操作重新安装一次看看。