标签:
网站报错Access denied for user ‘root‘@‘localhost‘ (using password: YES)
每次的挽救办法就是:
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
几乎每隔10分钟就出现一次,如下图,然后手动安全模式重启mysql。偶的内心好崩溃。。。
不得不赞阿里云的售后技术支持太给力!耐心回复我的一个个小白问题。
总结一下,
问题原因:本地授权问题
解决办法:“您目前启动到mysql安全模式下,您登陆mysql,重新授权一下,允许root账号从本地登陆mysql。授权完成后您再按照之前给您说的步骤,正常启动mysql即可”
解决过程,具体展开解释如下:
1. 安全模式启动mysql
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
2. 进入mysql命令行,#mysql (安全模式不需要密码即可登录mysql,开始偶还吓尿了。。。囧。。。)
3. 更改root用户的密码
mysql>UPDATE mysql.user SET Password = password ( ‘fxs_415700‘ ) WHERE User = ‘root‘ ;
对sql语句的执行一定要加分号(囧。。。多年不写SQL代码)
不妨用查询语句暖场 select User,Host from mysql.user WHERE User = ‘root‘; 查出了三条记录
4. 更改root用户的“host”值,已确保本地被授权
mysql>update mysql.user set host=‘localhost‘ where user=‘root‘;
(此步实际执行有错,因为host是键值,故上述select语句有必要,尤其是当没使用第三方mysql工具譬如sequel pro的话)
5. mysql>flush privileges ;
6. 退出mysql
mysql>quit
7. 停止mysql, 并查看是否还有mysql进程,有的话kill掉
# /etc/init.d/mysqld stop
通过 ps aux | grep mysql 查看mysql进程id
# ps aux | grep mysql
root 4043 0.0 0.0 63852 1252 pts/0 S 17:20 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql 4234 23.7 1.0 228300 21992 pts/0 Sl 17:20 7:24 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin- dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
查得进程ID,kill掉
# kill -9 4043
# kill -9 4234
8. 启动mysql
#/etc/init.d/mysqld start
(当时因为sql语句没加;即本地授权操作3、4、5三步未执行成功,第8步执行完后,mysql启动,网站access deny错误依旧)
网站报错Access denied for user 'root'@'localhost' -问题排查续
标签:
原文地址:http://www.cnblogs.com/luowei/p/4432907.html