修改mysql的root密码导致无法连接数据库


安装环境:MS WINDOWS 2003 SP1

MYSQL版本:mysql-essential-5.1.51-win32

故障现象:本来只是想改变下MYSQL的配置(原来的端口为默认3306,不安全),使用MySql自带的MySQL Server Instance Config Wizard修改后,在最后一步,执行到启动服务时就无休止的等待,只好结束Config 任务。试图通过“服务管理”来手工启动MySQL,出现1067错误提示。

----------------------------------

1、1067

1067错误的出现,有很多原因,先说我解决的这种。也就是配置问题。

修改安装目录下的 my.ini文件,去掉所有的内容,只写2条:(就是说明mysql的安装路径)

[mysqld]
basedir=C:\mysql-5.1.51-win32
datadir=C:\mysql-5.1.51-win32\data

存盘后,顺利启动,访问正常。

但是没有解决我想要改端口的问题。使用 Config Wizard再做一次配置,然后还是重复之前的错误~~~1067。

当然,可以按刚才的办法,修改my.ini,自己加上端口定义的,

port=10306

但是还有很多其他定义,比如default-character-set、max_connections等,都手写太麻烦了。于是最毒一招:重装。

-----------------------------------

2、ROOT 密码

好吧,卸载、重新装,但需要备份以前的数据,虽然不多。可是,ROOT密码是啥子来着???

这个问题好解决,比较有效的方法是:

  1.停止mysql服务(通过“服务管理”停止服务,或者在CMD命令行发命令net stop mysql); 
  2.进入mysql安装目录,比如d:\mysql5\bin下。 
  3.mysqld --skip-grant-tables ,跳过权限检查启动mysql. (注意,网上很多示例是用mysqld-nt,这个版本没有这个文件了,是mysqld),保持这个CMD窗口不关。
      4.新开一个CMD命令窗口,进入mysql安装目录,比如d:\mysql5\bin下。以root身份登陆MySql(mysql -u root)
  mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')  WHERE User='root'; 
  mysql> FLUSH PRIVILEGES; 
  mysql> quit 
  注意:‘newpwd’是新密码,自己设置哈。命令中mysql.user中间有个“点” 
  5.在任务管理器里结束掉 mysql.exe 这个进程,重新启动MYSQL即可!(也可以直接重新启动服务器)

MYSQL重新启动后,就可以用新设置的ROOT密码登陆MYSQL了。

-----------------------------------

3、完全重新安装

卸载MYSQL很快,重新装也很快,但结果却不那么理想,因为装完了,还是1067!!!!!再卸,再装,还是一样。

难道是没有卸载完全?一定是!因为在重新安装后,Config Wizard过程中,居然让我输入root用户旧口令,这一定是原来的配置没有清除。尽管我把MySql的安装目录都删除了(d:\mysql5\)。

仔细看了下,安装过程中的路径选择(不要用默认安装选项),发现默认的Mysql Server Datafiles是安装在C:\Documents and Settings\All Users\Application Data\Mysql Server 5.1\下的,这里面保存了Mysql的基本信息库。

删除该文件夹,并且在安装时,指定Mysql Server Datafiles的位置,顺利安装。

顺利配置,顺利启动。

 

至此,1067问题,妥善解决。

-------------------------------------

补充,其他1067的问题:

1.检查你的Mysql目录有没有给系统的System用户权限。特别是安装在非默认目录下。
2.删除掉你的 %WINDOWS%/my.ini 文件。(我没找到过这个文件,也许是其他版本)
3.安装MYSQL后更改了ROOT的密码后用,net startmysql启动时我就遇到了这样的问题.
使用以下命令后c:\mysql\bin\mysqladmin-u root -p shutdown 再net start mysql就没有这个错误提示了!