安装mysql因为/tmp权限不足而导致ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)的解决方案

本机是centos 6.5  安装的mysql是5.1的版本。

在安装mysql之后,第一次启动mysql服务的时候,需要/tmp有777(rwxrwxrwx)的权限,然而楼主的/tmp是755(rwxr-xr-x)的,[其实默认的是777,我因为之前误删过tmp,然后自己建的tmp,而权限没跟着改,小白的悲伤,说多了都是泪= =]所以如果不知道这个坑的话,第一次基本会出错。这个时候再修改/tmp已经迟了, 所以只能重新安装mysql了

由于上述原因报的错误是:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)

  ps:看来什么东西的第一次都很重要啊,mysql也不例外(捂脸逃。。)

  网上所找到的方法大都是:

    # /etc/init.d/mysql stop 
    # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
    # mysql -u root mysql 
    mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 
    mysql> FLUSH PRIVILEGES; 
    mysql> quit 
    # /etc/init.d/mysql restart 
    # mysql -uroot -p 
    Enter password: <输入新设的密码newpassword> 
    mysql>

  然而这样试过之后,依然是ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)。

  解决方案:彻底删除mysql,重新安装mysql

  具体过程如下:

1、先确保停止mysql

[root@localhost ~]# service mysqld stop
停止 mysqld: [确定]

2、查询mysql的相关包并全部删除

[root@localhost ~]# rpm -qa |grep -i mysql

mysql-server-5.1.73-7.el6.i686
mysql-5.1.73-7.el6.i686
perl-DBD-MySQL-4.013-3.el6.i686
mysql-libs-5.1.73-7.el6.i686
[root@localhost ~]# rpm -ev mysql-server-5.1.73-7.el6.i686
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
[root@localhost ~]# rpm -e --nodeps mysql-5.1.73-7.el6.i686
[root@localhost ~]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.i686
[root@localhost ~]# rpm -e --nodeps perl-DBD-MySQL-4.013-3.el6.i686
[root@localhost ~]# rpm -qa | grep -i mysql
mysql-libs-5.1.73-7.el6.i686
[root@localhost ~]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.i686
[root@localhost ~]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
[root@localhost ~]# rm -rf /var/lib/mysql
[root@localhost ~]# rm -rf /var/lib/mysql/mysql

3、手动删除配置文件(默认不删除)

[root@localhost ~]# rm -rf /etc/my.cnf

4、确认删除是否彻底,查询不到任何结果即已经彻底删除
[root@localhost ~]# rpm -aq | grep -i mysql

5、修改/tmp的权限,重新安装mysql,启动之后mysql就能正常运行了。

上一篇:mysql 链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES))


下一篇:浅析selenium的page object模式