MySQL错误访问被拒绝

问题描述:

我在尝试配置MySQL服务器Ubuntu 14.04。安装完成后,它运行良好,包括shell mysql和MysqlWorkbench。MySQL错误访问被拒绝

在系统重新启动后,一切都停止了。如果我尝试与外壳连接我得到这个:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

我得到这个错误与任何用户......即使有--skip-grant-tables选项我没有获得任何东西。来自Workbench的连接测试也不起作用,尽管服务器似乎正在正常运行。

当我安装mysql服务器时,我被要求提供一个root密码,并且我选择了一个非常简单的密码,因为我将它用于调试环境,所以我不认为这是一个拼写错误的问题。

我想我已经尝试了所有可用的技巧,但仍然无法访问服务器。

任何帮助将不胜感激。 非常感谢您提前!

编辑1:这里的my.cnf中

[mysqld] 
# 
# * Basic Settings 
# 
user  = mysql 
pid-file = /var/run/mysqld/mysqld.pid 
socket  = /var/run/mysqld/mysqld.sock 
port  = 3306 
basedir  = /usr 
datadir  = /var/lib/mysql 
tmpdir  = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking 
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address  = 127.0.0.1 

的一部分,服务器似乎运行:

[email protected]:~$ sudo netstat -tap | grep mysql 
tcp  0  0 localhost:mysql   *:*      ESCUCHAR 1158/mysqld  
+0

如果测试连接不工作,那么你的连接字符串是错误的(是你的用户名和密码正确的MySQL? – jbutler483 2014-10-07 11:06:09

这里的官方文档,你的问题可以由以下原因引起各种各样的东西。而你的问题没有详细描述你的问题。

http://dev.mysql.com/doc/refman/5.0/en/access-denied.html

我想举的文档,最常见的“初学者的错误”

确保服务器没有被配置为忽略网络 连接或(如果你是尝试远程连接),它已将 配置为仅在本地监听其网络接口。 如果服务器使用--skip-networking启动,则根本不会接受 TCP/IP连接。如果服务器以 --bind-address = 127.0.0.1启动,它将只在本地监听回送接口上的TCP/IP连接,并且不会接受远程连接 。


如果你得到下列错误,这意味着你使用的是不正确 root密码:

“壳>中mysqladmin -u根-pxxxx版本拒绝访问用户 'root'@'localhost'(使用密码:是)“

如果即使没有上述错误t指定了一个 密码,这意味着您在某些 选项文件中列出了错误的密码。


本地主机是你本地主机名的代名词,而且也是 默认主机到客户端尝试,如果你不指定主机 明确地连接到的。

要避免此类系统出现此问题,可以使用--host = 127.0.0.1 选项明确指定服务器主机。这将使得到本地mysqld服务器的TCP/IP 连接成为可能。您也可以使用 指定使用本地 主机的实际主机名的--host选项来使用TCP/IP。在这种情况下,即使您在与服务器相同的主机上运行客户端程序 ,也必须在服务器主机上的用户表 行中指定主机名。

希望这可能对您有所帮助。

如果这不能解决您的问题,那么您可能只是错误输入了密码,所以这里是“如何恢复”。

如果你只是设置你的服务器,你很有可能在你的bash历史中获得它。要检查这一点,请输入历史记录并搜索最佳情况下包含明文通行证的命令。

大多数情况下,上述内容不是一个选项,要解决此问题,您必须搜索系统维护用户(位于/etc/mysql/debian.cnf中的Debian上),您将看到用户名和维护用户的密码。 使用该用户连接到数据库并使用grant命令更改用户的详细信息。

+0

非常感谢!对不起,我有点新手在这个,所以我不知道是什么样的我已经编辑了这个问题,并且包含了my.cnf的一部分,我用mysqladmin得到了同样的错误,如你所说,这个问题似乎是一个错误的密码......因为我无法更改根目录密码,因为我得到相同的错误,是否有一个配置文件,我可以改变它? – JuanN 2014-10-07 11:39:56

+0

下面是如何发生奇迹,假设你在你的shell中键入你的密码,尝试以下操作:如果你输入'幸运的是你可以在那里看到你的密码,如果失败了,你可以尝试导航到/ etc/mysql并寻找一个系统维护用户(在Debian上称为debian.cnf)。如果我没有误导这应该在Ubuntu上是一样的,如果你没有为你的root用户设置密码,密码必须是一个空字符串(只需将该字段留空或当它提示你输入密码时按回车键)。 – Jeredepp 2014-10-07 11:46:32

+0

魔法发生了!非常感谢!!!当我安装mysql时,我被要求提供一个root密码,但不是从shell,而是从一个奇怪的文本编辑器,它类似于旧的MS-DOS版本,所以密码没有存储在命令行历史记录中。当我打开debian.cnf文件时,没有“root”条目,只是“debian-sys-maint”。用这个用户及其密码(也在文件中)mysql工作,我更改了mysql.user表并恢复了我的root密码。不过,我不明白PC重新启动后发生了什么......无论如何,非常感谢您的帮助! – JuanN 2014-10-07 12:02:33