重置忘记的 mysql 密码

重置忘记的 mysql 密码

我点击了这个链接(http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html) 在 Windows 机器上的 mysql 服务器中重置我忘记的密码。

我收到以下错误,

C:\>"C:\Server\Mysql\bin\mysqld" --defaults-file="C:\Server\Mysql\my.ini" --init
-file=C:\\mysql-init.txt
100725 23:45:35 [Warning] '--default-character-set' is deprecated and will be re
moved in a future release. Please use '--character-set-server' instead.
100725 23:45:35 [Note] Plugin 'FEDERATED' is disabled.
100725 23:45:36  InnoDB: Operating system error number 5 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory. It may also be you have created a subdirectory
InnoDB: of the same name as a data file.
InnoDB: File name .\ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

为了运行上述命令,我以管理员身份登录命令行解释器。

我尝试使用 --datadir 选项运行,并在日志中得到以下输出,

C:\>"C:\Server\Mysql\bin\mysqld" --datadir="C:\Server\Mysql" --defaults-file="C:
\Server\Mysql\my.ini" --console  --init-file=C:\\mysql-init.txt
100726 10:57:26 [Warning] '--default-character-set' is deprecated and will be re
moved in a future release. Please use '--character-set-server' instead.
100726 10:57:26 [Note] Plugin 'FEDERATED' is disabled.
C:\Server\Mysql\bin\mysqld: Table 'mysql.plugin' doesn't exist
100726 10:57:26 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgr
ade to create it.
100726 10:57:26  InnoDB: Started; log sequence number 0 44233
100726 10:57:26 [ERROR] C:\Server\Mysql\bin\mysqld: unknown variable 'defaults-f
ile=C:\Server\Mysql\my.ini'
100726 10:57:26 [ERROR] Aborting

100726 10:57:26  InnoDB: Starting shutdown...
100726 10:57:31  InnoDB: Shutdown completed; log sequence number 0 44233
100726 10:57:31 [Note] C:\Server\Mysql\bin\mysqld: Shutdown complete

如上所述,当我尝试运行 mysql_upgrade 文件时,它不起作用,因为它需要登录。

答案1

我发现,尝试过并且成功了。

解决方案基本上是确保--defaults-file它是链中的第一个参数。

对我来说这确实不是工作:

mysqld --init-file=C:/mysql-init.txt --defaults-file="C:/Program Files/MySQL/MySQL Server 5.5/my.ini" --datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/" --console

但是这个确实有效

mysqld --defaults-file="C:/Program Files/MySQL/MySQL Server 5.5/my.ini" --init-file=C:/mysql-init.txt --datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/" --console

答案2

检查目录的权限C:\Server\Mysql。确保您的用户有访问权限;管理员不会神奇地拥有所有权限,他们只是有权自己对本地系统上的任何内容拥有权限。

答案3

似乎 MySQL 找不到数据目录。尝试提供--datadir

答案4

即使您以管理员身份登录,也并不意味着进程“mysqld”有权访问这些文件夹。如果我没记错的话,这听起来就像您在 Vista 或 Windows 7 上运行它。尝试禁用 DEP 并重试(当您看到 cmd.exe 时,右键单击它并选择“以管理员身份运行”,而不是左键单击它)

相关内容