本机是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就能正常运行了。