为什么mysql跳过授权表之后网页时不时的报错

为什么mysql跳过授权表之后网页时不时的报错,第1张

这个错误和并发没什么关系, 主要是你调用mysql_errror()的时候,连接数据库的句柄已经提前关闭了。 请检查是否在mysql_errror()时,是否已经mysql_close()了

错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问

首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);解析的地方有两处:①Access denied(拒绝访问);②using password:NO/YES

出现access denied的原因有如下可能:

1)mysql的服务器停止

2)用户的端口号或者IP导致

3)mysql的配置文件错误----my.ini等文件

4)root用户的密码错误

若MySQL已经没有启动,重启MySQL服务器:net start mysql

若用户的端口号与IP(3306/3307)不一致,打开my.ini文件进行编辑。全部编辑替换为: port=X

my.ini文件误输入无效内容,不知道到何处。复制替换该文件;有人已经对my.ini文件进行解释以及注释

root用户密码错误, 解决方案见下文

出现 using password的原因如下是:

不键入密码:

错误的密码:

解决方案:

到安装的MySQL的目录下,找my.ini文件;

在[mysqld]后添加skip-grant-tables(使用 set password for设置密码无效,且此后登录无需键入密码)

skip-grant-tables     #在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查

尽量少 *** 作

重启MySQL服务器。

登录mysql,键入mysql –uroot –p;直接回车(Enter)

键入无效set password for ‘root’@‘localhost’=password(‘123456’)

在my.ini文件添加从此后无需键入密码

再把my.ini的skip-grant-tables删除,然后重启MySQL服务器:net stop mysql net start mysql

再次进行设置密码:set password for ‘root’@‘localhost’=password(‘123456’)

设置密码成功。。。

注:skip-name-resolv        #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时候。但是需要注意的是,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式了,否则MySQL将无法正常处理连接请求!

mysql>grant all privileges on *.* to 'mruser'@'%' identified by'123456' with grant option

mysql>flush privileges


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6172303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存