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