我点击了这个链接(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 时,右键单击它并选择“以管理员身份运行”,而不是左键单击它)