【MySQL】解决windows下mysql匿名登陆无法使用mysql数据库的问题

来源:互联网 发布:软件著作权侵权认定 编辑:程序博客网 时间:2024/05/28 04:54

之前可能是mysql操作不对吧,mysql在登入的时候(use mysql)显示

Access denied for user ”@’localhost’ to database ‘mysql’

这说明这是匿名登录的,几乎什么权限都没有。即使用mysql -u root登录也是提示这个。
在网上找到了解决办法,这里做个记录:

关闭mysql进程

首先,网上的资料都提到了需要关闭mysqld这个服务来屏蔽权限检查,我查看了任务管理器,发现的确有一个叫mysqld.exe的程序在运行(声明:我盗的图( ̄▽ ̄)”):
这里写图片描述

修改root密码

网上都提到了

mysqld-nt --skip-grant-tablesmysqld_safe --skip-grant-tablessafe_mysqld --skip-grant-tables

关闭权限检查的方法,但是我在CMD命令提示符下输入都提示:“mysqld_safe”不是内部或外部命令,也不是可运行的程序或批处理文件。
(1)mysqld.exe (2)mysqld_multi.pl
我查看了帮助手册,“在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。为了保持同旧版本MySQL的向后兼容性,MySQL二进制分发版仍然包括safe_mysqld作为mysqld_safe的符号链接。默认情况下,mysqld_safe尝试启动可执行mysqld-max(如果存在),否则启动mysqld。”
我估计mysqld_safe是mysqld.exe文件里的一个启动选项。所以我尝试了这样输入:
这里写图片描述
先跳转到mysql的bin目录下,再输入

mysqld --skip-grant-tables

这时候有可能一直没有反应的样子,不会生成新的一行输入。
实际上它已经停止了权限检查,我们可以进行其他操作了。
3.重新打开一个cmd命令提示符窗口,进入到mysql里面,然后输入use mysql,就会发现成功了!:
这里写图片描述
看到没?上面最后一行提示的是Database changed!!

如果你输入show tables就会看到这个数据库下有个表叫user,记录了登陆的账户名和密码。

所以你可以这样修改root账户的密码:

UPDATE user SET Password=PASSWORD('123') WHERE user='root';

这里写图片描述
这时你使用MySql Command Line Client登陆的话,就会要求输入密码123了!你已经不是匿名登陆,所以可以进行各种操作了!!!


转载自:http://www.it165.net/database/html/201402/5328.html

0 0
原创粉丝点击