错误:'访问被拒绝用户'debian-sys-maint'@'localhost'(使用密码:YES)'

时间:2012-01-20 07:42:22

标签: mysql debian root

Stackoverflow的长期读者,第一次提交问题。

由于各种原因,我不得不在几天前硬件重启我的开发笔记本电脑。当我把它恢复时,我意识到mysqld不再可访问。我通常在本地开发机器上连接root。我无法像往常一样通过init脚本启动/停止它,所以我一如既往地转向各种搜索引擎。在咨询Google,Bing和Duckduckgo.com之后,我仍然无法找到解决问题的方法。我找到了类似问题的解决方案,但都涉及更改debian-sys-maint的自动生成密码并以root用户身份登录以设置新密码,但由于我无法以root身份登录,这也无法解决我的问题。

有没有人知道任何其他解决方案 - 这种困境的候选人?

错误:'访问被拒绝用户'debian-sys-maint'@'localhost'(使用密码:YES)'。

3 个答案:

答案 0 :(得分:9)

我恢复mysql数据库之后就得到了同样的错误:

mysql -h localhost -u root -p < mysql.backup.sql

mysql.backup.sql文件来自另一台服务器。

问题似乎源于目标和源系统中存储在/etc/mysql/debian.cnf中的不同密码。我将密码行从源系统的debian.cnf文件复制/粘贴到目标系统中的文件。然后我能够毫无问题地重启mysqld。

注意:在我重新启动之前,我必须执行killall mysqld

答案 1 :(得分:3)

听起来你可能已经破坏了数据库中的表(“mysql”),这些表包含访问所有数据库的凭据。您是否在MySQL日志(/ var / log / mysql)中看到任何表明存在问题的内容?

如果存在损坏,尝试修复它的方法将取决于您的存储引擎。您使用的是MyISAM(默认设置)吗?如果是这样,请尝试关闭守护程序并使用myisamchk尝试修复。

如果你无法修复,你可能不得不从备份恢复(你有备份,对吗?)或重新初始化MySQL(可能只是通过APT重新安装包是最简单的)。

您也可以尝试在ServerFault上获取经验丰富的系统管理员提供的更多建议。

P.S.-如果您有系统超级用户访问权限,即使您无法登录MySQL,也可以重置MySQL root密码,尽管通过somewhat convoluted procedure

答案 2 :(得分:0)

没有什么特别的或不寻常的。

错误表示密码不正确。

如果您想更改/重置密码,请查看此文章 - http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html