MySql 1045错误解决分享

晓亮 发布于 2012/09/27 16:54
阅读 4K+
收藏 2

   mysql#1045(1045Access denied for user 'root'@'localhost' (using password:YES)错误相信大家经常会遇到,网上也有很多解决办法,同样可能都是1405错误,同一种办法也不一定能解决,我今天刚好遇到一个,简单说说我遇到的情况,这不是我独创,是集合我的的实际情况提出的一个方法,仅供大家参考。

实际情况:

     项目是Mysql数据库,我们做了自动备份,每隔6个小时自动备份一次,昨天12点多系统要更新点东西,现场技术支持不在。然后我们让客户那里的网管把远程桌面开了,端口做了映射,然后我们这边的技术人员直接远程登录,在更新这个程序的时候,另外的系统有用户在使用,服务器有数据提交过来,中午技术人员去吃饭了,结果悲剧了,服务器被入侵,黑客直接把我们的数据库服务给干掉了,并且我们这边完全登不上,登上去就给T掉了,客户那边网管也不在,然后我想办法进去,把对方干掉,种的木马清掉,发现程序无法访问,数据库服务直接给干掉,我们的技术没遇到过这种情况,不知道怎么办,我正好看会去了,我刚回来发现他正准备卸载原来的数据库重装,我赶紧阻止掉,我虽然也没碰到过,但是我觉得如果重装掉,之前的数据虽然可以通过备份恢复 但是在备份之后那段时间用户提交的数据却没有了,所以我就来解决这个问题。

解决方法:

 首先:我把原来数据库安装目录全部拷贝到另外的地方,然后重装,重装后,我把原来的data目录直接拷贝过去,出现了1045错误,但是根据网上的几个说法不知道为什么一直没解决掉,我抱着试试看的态度,直接删掉了已经重装好的安装目录,只是删掉目录哦!

然后把原来的目录直接拷贝过来,发现还是有问题,仔细研究了下,我觉得可能是之前的配置跟现在不行,我把新的目录里面的config.exe复制过来,清楚配置,然后重新配置还是出现1045错误,但是数据库服务已经可以启动了,到了这里的时候,我已经想到可能就是用户密码的问题了。之前也是1045错误,但是始终解决不了。这次貌似不太一样。

接着,我停掉数据库服务。使用cmd窗口,直接打开mysql的bin文件夹 使用命令,解决了这个问题。步骤:

1、创建1个文本文件,并将下述命令置于单一行中:
  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你要设置的密码');
  用任意名称保存该文件。放在某个盘的根部录下,例如c:\demo.txt

2、开始菜单->运行-> cmd
  将路径调到mysql的bin文件夹下;

然后输入 mysqld-nt --init-file=C:\demo.txt

3.这时候你去重启mysql的服务会报错,不要担心,在电脑进程中干掉mysqld-nt 进程,然后就可以重启服务成功,这样就OK了。

注意:A弄好之后根目录下的demo.txt

         B有时候会出现端口占用的问题,注意使用命令(netstat -ano | find  "3306(数据库端口)"),看看端口占用的PID,在进程里面干掉即可。

 

       好了,这是我的一点点分享,希望如果遇到同样问题的朋友可以借鉴一下
 

加载中
0
Wentasy
Wentasy
Mark,多谢分享。
0
新人王
新人王
好牛逼的解决办法
0
mahone
mahone
这个是不是mysqlisam引擎才能用的方法?
返回顶部
顶部