今天需要装一个MySQL数据库,到官网下载了mysql-installer-community-5.6.17.0.msi这个安装文件,在我的win7上安装好。
但是在使用Navicat登陆时出现“1045:Access denied for user 'root'@'localhost'”这种错误。
到网上找了很多例子在失败过几次之后,终于根据网上的方法,再根据自己MySQL的情况,把这个问题解决了。
解决过程:
1、以管理员身份运行CMD(防止某些指令只能管理员识别),然后切换目录到我的MySQL安装目录的bin目录下
C:\Windows\System32>e:
E:\>cd MySQL\MySQL Server 5.6\bin
E:\MySQL\MySQL Server 5.6\bin>
2、键入指令:mysqld install MySQL --defaults-extra-file="E:\MySQL\MySQL Server 5.6\my-default.ini"。注意,my-default.ini是MySQL安装目录下的服务初始化要用到的文件。5.6版本的MySQL是这个文件名,以前得版本文件名好像是my.ini。如下示例,可能会显示下面粗体的结果提示,也可能只会提示“Service successfully installed.”。这些都表明我们的MySQL数据库安装的没有问题
E:\MySQL\MySQL Server 5.6\bin>mysqld install MySQL --defaults-extra-file="E:\MyS
QL\MySQL Server 5.6\my-default.ini"
The service already exists!
The current server installed: "E:\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-
extra-file="E:\MySQL\MySQL Server 5.6\my-default.ini" MySQL
Service successfully installed.
3、修改my-default.ini(my.ini)文件,在[mysqld]下面,加上skip-grant-tables这个配置参数:
4、重新以管理员身份打开一个CMD,键入:net stop mysql,关闭mysql服务
C:\Windows\System32>net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
然后,再键入net start mysql,启动mysql服务。
当然,如果你没有启动mysql服务,这里只需要启动一下就可以了,目的是为了重启服务重新读取上一步的ini文件的改动。
当然,启动mysq服务有很多方式,如控制面板里的服务、oracle的MySQL notifier都是可以的。
5、启动mysql后,继续在bin目录下的CMD中键入:mysql -u root -p
6、登陆成功后,分别键入:
user mysql;
UPDATE user SET Password=PASSWORD('xxooxxoo') where USER='root';
flush privileges;
这是为了修改你的root密码,“”xxooxxoo当然是你的新密码咯,刷新privileges,最后quit退出。
7、将之前在ini文件中加入的“skip-grant-tables”参数注释掉,或者删除。
8、最后一步,重启mysql,如:net stop ysql、net start mysql
这样MySQL就可以正常登陆,使用了。以上就是解决这个问题,我的步骤。至于其他怪异情况,还没有遇到,且不提。