4m0*_*i4c 15 mysql mysql-error-1045
我的phpmyadmin有点问题,实际上我不小心删除了多个用户帐户.因为没有错误就无法连接:
# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
我之前在网上搜索过一点,甚至是技术:
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
不起作用,或者我不明白它是如何工作的.
我在FreeBSD 8.1上,我的PhpMyadmin版本是2.11.
提前感谢您的回答.
Ale*_*xey 18
我在这里总结了我的解决方案: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
Run Code Online (Sandbox Code Playgroud)
对于mysql 5.7.16或更高版本,我发现这(来自mysql.com)是工作解决方案.以下是与先前旧版本不同的一些要点
1)我使用下面的命令在安全模式下运行mysql,根据其他一些实际上对我工作正常的引用(mysql 5.7.16 ubuntu 16.04).
mysqld_safe --skip-grant-tables --skip-networking
Run Code Online (Sandbox Code Playgroud)
2)以下更新stmt不适用于更高版本(即5.7及以上版本)
-- NOT Working for 5.7 and later
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
INSTEAD使用以下5.7.6及更高版本
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
或者以下用户为5.7.5或更早版本.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Run Code Online (Sandbox Code Playgroud)