ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)



#1.停止mysql数据库

/etc/init .d /mysqld  stop 
#2.执行如下命令
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
#3.使用root登录mysql数据库
mysql -u root mysql 
#4.更新root密码
mysql> UPDATE user SET Password=PASSWORD( 'newpassword' ) where USER= 'root' ;
#5.刷新权限 
mysql> FLUSH PRIVILEGES; 
#6.退出mysql
mysql> quit 
#7.重启mysql
/etc/init .d /mysqld  restart 
#8.使用root用户重新登录mysql
mysql -uroot -p 
Enter password: <输入新设的密码newpassword>

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

输入 mysql -u root 登录 mysql 的时候出现以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

出现这个问题的原因是没有生成 mysql.sock 文件,没有生成这个文件的原因是 /usr/local/mysql 目录的权限不对:

chown -R mysql:mysql  /usr/local/mysql 即可解决