我的phpmyadmin有点问题,实际上我不小心删除了多个用户帐户。 因为没有错误就无法连接:
# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO)
我之前在网上搜索了一下,甚至是技术:
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
不起作用,或者我不明白它是如何工作的。
我在使用FreeBSD 8.1,我的PhpMyadmin版本是2.11。
提前感谢您的回答。
答案 0 :(得分:17)
我在此总结了我的解决方案:http://snippets.dzone.com/posts/show/13267
sudo stop mysql
sudo mysqld --skip-grant-tables --skip-networking
mysql
mysql> update mysql.user set password = password('your_new_password') where user = 'root';
mysql> flush privileges;
mysql> exit;
sudo mysqladmin shutdown
sudo start mysql
答案 1 :(得分:5)
对于mysql 5.7.16或更高版本,我发现this(来自mysql.com)是可行的解决方案。以下是与先前旧版本相比不同的一些要点
1)我使用下面的命令在安全模式下运行mysql,根据其他一些实际上对我来说工作正常的引用(mysql 5.7.16 ubuntu 16.04)。
mysqld_safe --skip-grant-tables --skip-networking
2)以下更新stmt不适用于更高版本(即5.7及以上版本)
-- NOT Working for 5.7 and later
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
INSTEAD使用下面的5.7.6及更高版本
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
以下用户或5.7.5或更早版本的用户。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
答案 2 :(得分:0)
这个对我有用,没有副作用。 https://help.ubuntu.com/community/MysqlPasswordReset
答案 3 :(得分:0)
请按照以下链接中的说明重置root密码。您必须从mysql外部执行此操作。
重置MySql密码
忘记你的MySQL密码对你来说真是一件令人头痛的问题。在Windows下恢复MySql密码可以遵循一些简单的步骤 停止MySql
在继续之前,您必须停止MySql服务。在Windows环境中,转到“任务管理器”'和服务'选项卡找到MySQL并停止它。 编写Sql来更改密码
您需要做的就是创建一个文本文件并将以下两行放入其中。 UPDATE mysql.user SET Password = PASSWORD(' MyNewPass')WHERE User =' root&#39 ;; FLUSH特权;将它保存在C:\驱动器下,并为其命名' mysql-init.txt' 是时候自己重启MySQL了。
现在是时候重新启动你之前停止过的MySQl,但这次是从命令行开始的。 C:> C:\ mysql \ bin \ mysqld-nt --init-file = C:\ mysql-init.txt 完成了!
现在您可以使用新密码登录。完成后删除在上一阶段创建的文件。
还有一个链接(http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password),我已经解释了同样的事情。
希望这会有所帮助.. :)
答案 4 :(得分:0)
在Windows上回答XAMPP:
UPDATE mysql.user SET Password = PASSWORD('password')WHERE User ='root'; FLUSH PRIVILEGES;
DONE!
请注意,mysql root用户密码不必与phpmyadmin的密码相同。
答案 5 :(得分:0)
这是我所做的并且有效:
安装(rpm安装)后,执行vi /etc/my.cnf
这将为您提供设置datadir
的路径。对我来说是datadir=/var/lib/mysql
在user=root
添加一行,并删除datadir
路径中的所有内容:rm -rf /var/lib/mysql/*
。
现在点击命令:mysqld --initialize
。
在某个位置生成临时密码。为此:
grep "A temporary password" /var/log/*
。
你会得到一句话:
/var/log/mysqld.log:2018-05-01T15:13:47.937449Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &uosjoGfi9:K
。所以对我来说&uosjoGfi9:K
是我的临时密码
现在做一个mysql -u root -p
。粘贴您从上面得到的临时密码。
您将处于mysql cli模式。现在做:
mysql> use mysql;
系统会要求您重置密码:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
运行ALTER命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPswd';
你完成了。
答案 6 :(得分:0)
我正在使用MySQL Server 8,这就是我解决此问题的方式。
创建一个文件并相应地命名。我将其命名为reset.txt。将以下内容放在文件中,但更改MyNewPass。这将是您的新SQL密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
停止我的SQL服务器(转到服务并搜索MYSQL,然后右键单击它并停止)
现在在My SQLserver目录的bin文件夹中打开一个cmd。就我而言,是
C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin
执行以下命令。
mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\reset.txt'
注意:我的reset.txt文件在c驱动器中。给出正确的路径。检查my.ini文件在目录中。就我而言,它位于
C:\ ProgramData \ MySQL \ MySQL Server 8.0 \ my.ini
最后,重新启动SQL Server。检查您的新密码。
答案 7 :(得分:0)
就我而言,这是一个令人沮丧的 Windows Server 安装 (iis/php/mysql),所以这就是我所做的:
注意:如果你已经有数据,你应该备份它!
步骤 1 从控制面板卸载 MySQL。 (你应该知道怎么做)
第 2 步 以管理员身份运行命令提示符并执行以下命令以停止和删除 MySQL 服务。
Net stop MySQL
Sc delete MySQL
第 3 步 删除这些文件夹:
C:\Program Files\MySQL
C:\Program Files (x86)\MySQL
C:\ProgramData\MySQL
如果它存在:
C:\Users\[User-Name]\AppData\Roaming\MySQL
从 https://dev.mysql.com/downloads/installer/ 下载安装程序并安装 -MySQL 服务器 8.0.23
以管理员身份打开 cmd 并转到 c:\Program Files\MySQL\MySQL Server 8.0\bin\ 运行
mysqld --initialize --console
mysqld --install
现在启动服务(在运行面板中输入 services.msc)
现在回到控制台运行:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
就这样