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


    转载请注明出自博客园,附加上本文的链接http://www.cnblogs.com/bangbangjiang/p/3564321.html   谢谢~

    我在windows下安装了mysql,但是不用密码就能登进去,而root明明是有密码的,我用select user()命令查看当前登录用户是root。

    查看数据库,只能看到自带的两个数据库(information_schema和test),mysql这个数据库都看不到。如果运行use mysql,就会出现 Access denied for user ''@'localhost' to database 'mysql', 这说明这是匿名登录的,几乎什么权限都没有。即使用mysql -u root登录也是提示这个。

    网上搜了很多资料,大多数是教的怎么在linux下解决这个问题。

    我综合了大多数的方法,自以为找到了解决的办法,所以特意在博客园这里写下这篇文章:

    1.首先,网上的资料都提到了需要关闭mysqld这个服务来屏蔽权限检查,我查看了任务管理器,发现的确有一个叫mysqld.exe的程序在运行:

    直接关闭这个进程

    我查阅了帮助手册,”MySQL服务器也就是mysqld,是在MySQL安装中负责大部分工作的主程序。服务器随附了几个相关脚本,当你安装MySQL时它们可以执行设置操作,或者是帮助你启动和停止服务器的帮助程序。“ 我估计它相当于mysql的守护进程,不停止它就无法设置启动脚本。

    2.网上都提到了

    mysqld-nt --skip-grant-tables

    mysqld_safe --skip-grant-tables

    safe_mysqld --skip-grant-tables 等关闭权限检查的方法,但是我在CMD命令提示符下输入都提示:“mysqld_safe”不是内部或外部命令,也不是可运行的程序或批处理文件。

    于是我查看mysql安装目录下的bin文件夹里有哪些相关的文件:

    (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>flush privileges;重新加载权限表。

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

    更新

    后来我发现每次重启过电脑之后,都是匿名登陆。研究了一番之后,我明白了为什么会这样。因为我安装的时候在最后一步少勾选了一个配置选项:
    mysql server instance configuration wizard

    详细教程可参见,我觉得它说得蛮详细的:http://blog.163.com/tao198352__4232/blog/static/85020645201061810038491/

    如果出现start service失败的情况,可以参见:http://blog.163.com/capple_wang/blog/static/1221480420091245340696/

    http://www.3eyes.org/POST/mysql.error0.asp 等等,我都是通过他们才安装成功的。

    现在登录都是需要输入密码了~~~

  • 相关阅读:
    Angularjs 搜索关键字高亮显示
    JavaScript函数的概念
    使用github之前的技能准备
    github的使用(概要版)
    浏览器与浏览器内核
    计算机数据存储
    Git版本控制常用命令整理
    整理几篇比较好的AndroidUI动画开发文章
    AngularJS指令
    图片的像素和Android的dp值之间的关系。
  • 原文地址:https://www.cnblogs.com/bangbangjiang/p/3564321.html
Copyright © 2020-2023  润新知