我已成功在本地主机 xampp 上重置了 root 密码。现在,当我自己运行 mysql 守护进程(XAMPP/mysql/bin/mysqld.exe
)时,我可以使用 PHPMyAdmin 登录 MySQL 管理,没有任何问题。
但是,当我从 XAMPP 的控制面板(带有启动/停止等按钮的“漂亮”窗口)运行 MySQL 时
我无法再通过 PHPMyAdmin 登录 - 我收到错误 #1045...
这一定是与配置相关的东西?可能是什么原因造成的?
非常感谢:)
最佳答案
似乎xampp中的mysql守护进程的basedir默认值与my.ini
设置文件不同。
因此,当我重置密码而不添加与 XAMPP 运行 mysqld 时相同的 --defaults-file
时 - 我实际上为不同的“工作空间”重置了密码。
感谢@andy,因为他的评论引导我找到了解决方案:)
因此,重置 XAMPP 的 MySQL root 用户(在 Windows 上) 的正确方法是:
1) 使用 XAMPP 控制停止 MySQL
2) 准备初始化文件
直接在C:\
驱动器上创建名为mysql-init.txt
的文件,并用以下内容填充它:
#INSERT INTO mysql.user (User,Password) VALUES('root',PASSWORD('root'));
UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';
FLUSH PRIVILEGES;
- #
是注释 - 如果您没有 root 用户或意外删除了它 - 取消注释第一行并注释第二行
这些命令创建一个 MySQL 用户 “root”,使用密码 “root” 并给出他/她对一切拥有所有权限。
3) 使用正确的参数运行 MySQL 守护进程
使用以下参数运行 YOUR_XAMPP_INSTALL\mysql\bin\mysqld.exe
:
注意双斜杠“\\”而不是单斜杠“\”
--defaults-file="c:\\YOUR_XAMPP_INSTALL\\mysql\\bin\\my.ini"
--init-file=C:\\mysql-init.txt
因此 cmd.exe
的整个命令可能如下所示:
c:\YOUR_XAMPP_INSTALL\mysql\bin\mysqld.exe --defaults-file="c:\\YOUR_XAMPP_INSTALL\\mysql\\bin\\my.ini" --init-file=C:\\mysql-init.txt
当然,请将 YOUR_XAMPP_INSTALL
替换为自定义 xampp 安装的路径(通常只是“xampp”或“C:\xampp”)。当然,如果您在与“C”不同的驱动器上运行,请将 C:\
更改为 WhatEverLetterYouWant:\
4) 尝试登录 http://localhost/phpmyadmin/
尝试使用用户root和密码root登录http://localhost/phpmyadmin/
,如果不起作用,您在前 3 个步骤中做错了什么
5) 4) 进展顺利吗? => 使用 XAMPP 控制停止 MySQL
6) 使用XAMPP控制启动MySQL
7) 尝试使用 root/root 再次登录
8) 7) 进展顺利吗? => 完成:)
引用文献:
http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
关于mysql - xampp控制运行mysql时无法登录mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722102/