在登入mysql时,当输入mysql -uroot -p 回车之后。 然后输入密码,但是却没有这正常的登入MySql ,却出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).
在网上搜索了一些方法,有些方法是没有效果的。
首先,我安装的mysql 是5.7.11 的解压版数据库。之前网上有人说先修改安装目录下的my.ini文件即,编辑my.ini文件,将skip-grant-tables添加在[mysqld]下然后再进行一系列的修改就可以重新更改,成功登入mysql。
但是注意在我所用的版本中,在mysql解压文件文件下只有my-defoult.ini文件。并没有my.ini文件。于是我就直接将上面的skip-grant-tables添加进[mysqld]下,但是却并不能成功解决问题。
最终我将my-defoult.ini文件改成my.ini文件就成功生效了,这一点至今都还没有明白。所以先暂时解决成功登入的问题。以后的博文中探究为什么会出现这个的问题。
下面就讲解如何解决这个问题吧:
1、将mysql解压路径下的my.ini文件进行编辑(如果你的文件夹下是my-defoult.ini,,则将它改成my.ini),在[mysqld]项下添加skip-grant-tables 这个是mysql的启动参数,这里也先讲解一下这个参数吧:
skip-grant-tables : 就是在启动mysql的时候不启动(忽略)grant-table(授权表),授权表就是控制每个用户对数据库进行操作的行为,比如限制用户访问整个数据库,限制用户访问数据库中特定的表,或者禁止访问呢特定表中的特定列。所以这个参数的用处就是当忘记密码的时候用了。
2、关闭mysql服务,然后再重新启动服务。
3、然后再 mysl -uroot -p 回车 此时是不用密码就可以登入成功的。
4、然后选择数据库 use mysql
5、设置新的密码
注意新密码设置在( ) 里面。
6、刷新数据库操作。不然是不会生效的。
7、修改之后,要将这个my.ini文件中之前添加的skip-grant-tables给去除,就行了。