SUSE上的mysql一直跑的好好的,今天重启了SUSE后,mysql突然不能访问了。使用mysql -uroot -pxxx -h127.0.0.1 -P3306连接mysql时,报了个ERROR 1045: Access denied for user 'root'@'localhost'的错误。一番Google后,找到了如下的解决办法
/etc/init.d/mysql stop (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
pkill -KILL -t pts/0 可将pts为0的**用户(之前运行mysqld_safe的用户窗口)强制踢出
正常启动 MySQL:/etc/init.d/mysql start (service mysqld start)
问题出在最后一步:你pkill时,pts/X,其中的‘X’不一定是0,可能是1,也可能是2,也可能是。。。所以你kill pts/0 肯定就不对了。你可以用'ps aux | grep pts'查到你重置密码的SSH窗口。
或者直接把重置密码的SSH窗口关闭就行了