在各种各样的适用场所,MySQL会出现各种各样的问题,经过足足半年的长跑,我的数据库终于修复了Bug,可以重新使用了。数据库出问题,那可能是家常便饭了。经过这足足半年的煎熬,我决定在以后的日子里,记录下我在使用数据库时遇到的色彩缤纷的问题,以及这些问题的解决方法。由此,今天写了这篇博客。
首先,给大家看看,这个问题是什么样子的。我在这里用到的MySQL可视化工具为Navicat。
这个错误是这样说的:
1045 Access denied for user 'root'@'localhost' (using password:YES)
这个意思是说:用户“root”@本地主机的访问被拒绝
那为什么会出现这种错误呢?
答案是这样:这种问题的本质是用户密码出现错误。
那如何解决呢?
以下是我今天的解决经验:
1.找到MySQL安装路径下的my.ini文件,用记事本的方式打开;
2.打开后,找到mysqld这个位置,这个文件的内容中有多个mysqld,注意看箭头所指位置
3.在 [mysqld] 底下添加语句:skip-grant-tables,添加完毕后保存。如果提示不让修改这个文件,则可将它复制到桌面,再用记事本打开它,添加完毕后,将桌面上的文件复制到原来的地方,赋值时选择替换目标文件;
好学的你肯定也想知道这个skip-grant-tables是什么意思,如下介绍:
skip-grant-tables作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库。
也就是说,启用这个参数之后,数据库的安全性会降低。
4.WIN+R —>cmd—>mysql -u root -p,这个命令是连接数据库服务器的命令;遇到Enter passward:直接回车;
5.继续执行如下操作:
mysql>use mysql //使用这个数据库
mysql>update user set password=password("123456") where user="root"; //修改数据库的密码
mysql>flush privileges; //刷新数据库
这要步骤已经完成,我们来看看修改后的用户和密码:
到这里修改密码的工作已经完成。接下来要将在my.ini中添加的语句删掉。删掉之后再重启服务器,在测试链接,如果没有错误,一切OK;如果删掉语句,重启服务器之后任然有1045错误,那么,还是在my.ini原来删掉这条语句的位置中添加这条语句:skip-grant-tables,再重启服务器,再测试,一切OK。