解决windows下的mysql匿名登陆无法使用mysql数据库的问题
2014-02-24 11:32
573 查看
转载请注明出自博客园,附加上本文的链接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 等等,我都是通过他们才安装成功的。
现在登录都是需要输入密码了~~~
我在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 等等,我都是通过他们才安装成功的。
现在登录都是需要输入密码了~~~
相关文章推荐
- 解决windows下的mysql匿名登陆无法使用mysql数据库的问题
- 【MySQL】解决windows下mysql匿名登陆无法使用mysql数据库的问题
- 解决windows下的mysql匿名登陆无法使用mysql数据库的问题
- 解决windows下的mysql匿名登陆无法使用mysql数据库的问题
- 解决mac使用homebrew安装MySQL无法登陆问题
- 解决Windows平台通过cURL上传APP到蒲公英pgyer平台时无法使用中文升级描述的问题
- linux下mysql 使用mysql -uroot -p输入密码无法登录问题的解决
- mysql增加普通用户后无法登陆问题的解决方法
- 解决Windows安装解压版MySQL出现服务正在启动-服务无法启动的问题
- 在windows下使用putty通过密钥登陆linux以及相关问题解决方案
- DAC--解决windows验证无法登陆的问题
- MySQL下载安装、配置、使用及无法启动MySQL服务问题解决
- MySql使用全记录5 -----解决Windows下用命令导入sql文件时"Failed to open file"的问题
- 解决MySQL新建用户本地无法登陆问题
- 关于安装mysql 5.7时遇到的默认root无法登陆或者找不到data文件夹的问题的一些解决办法
- ofbiz使用mysql时无法按汉字查询问题的解决
- OP:windows 2008 安装之后无线网无法使用问题解决(Windows 2008 Wireless)
- 使用innodb_force_recovery解决MySQL崩溃无法重启问题
- 解决ubuntu下安装mysql使用service 无法启动问题
- 使用innodb_force_recovery解决MySQL崩溃无法重启问题