无法连接到数据库服务器(MySQL Workbench)


87

你能帮我解决这个问题吗?

当我尝试单击Mysql工作台中数据库菜单下的“查询数据库”时。它给我一个错误:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from



在我的情况简单重启的帮助-但我首先检查@sergio建议- stackoverflow.com/a/7875732/6705161
dannydedog

Answers:


105

该问题可能是由于在升级到ubuntu 16.04时未设置密码的情况下,默认情况下为root用户启用了套接字身份验证。

解决方案是恢复到本机密码身份验证。您可以通过执行以下操作使用套接字身份验证登录到MySQL:

sudo mysql -u root

登录后:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

它将恢复为本机(旧的默认)密码身份验证。

现在,只要MySQL需要,就使用password作为密码。


3
它为我工作,我很惊讶,我已经在安装mysql时配置了严格密码,并使用了与给定alter查询相同的严格密码。我很想知道为什么它本身没有在第一次尝试中起作用
Vipul Patil

非常感谢!是否仅出于unix根用户的利益而创建此行为,而无需输入密码即可登录mysql?
Igor de Lorenzi

1
很好的解决方案。多谢兄弟!
瓦尔尼·法里亚

56

尝试services.msc从“开始”菜单搜索框打开,然后尝试手动启动MySQL服务或直接写services.mscRun框中


1
没有为我工作。直接从命令行“ C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console”运行(注意,“ mysql”和“ .exe”之间的“ d”确实起作用(打开命令行“以管理员身份”)。因此,我想找到一种以“以管理员身份”启动服务的方法可以解决此问题
Adrien Be

5
开始菜单搜索框在哪里?
Everyone_Else

我的解决方案是使用sudo运行Mysql-Workbench sudo mysql-workbench 。不知道在哪里可以找到services.msc
Luigi Lopez

33

似乎有很多导致此错误的原因。

我的原因/解决方案

就我而言,原因是我的服务器配置为仅接受来自localhost的连接。我通过以下文章对其进行了修复:如何启用对MySQL数据库服务器的远程访问?。我的my.cnf文件没有skip-networking行,所以我只更改了行

bind-address = 127.0.0.1

bind-address = 0.0.0.0

这允许来自任何IP的连接,而不仅仅是127.0.0.1。

然后,我创建了一个MySql用户,可以通过运行以下终端命令从客户端计算机进行连接:

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

1.2.3.4您要从中连接客户端的IP地址在哪里。如果您确实有麻烦,可以使用'%'代替'1.2.3.4'允许用户从任何IP连接。

其他原因

有关相当广泛的列表,请参见访问拒绝错误的原因


AFAIK,创建用户是必需的,因为用户root仅应用于管理工作,并且明智的做法是将其限制为localhost。您创建的用户将取决于您!
user3791372

现在,指向“拒绝访问错误的原因”的链接已断开。
马特·库布鲁

20

您是否尝试确定这是Workbench的问题还是常规的连接问题?试试这个:

  1. 打开终端
  2. 类型 mysql -u root -p -h 127.0.0.1 -P 3306
  3. 如果可以成功连接,则在输入密码后(键入quit并输入Enter退出),您将看到mysql提示符。

报告此工作方式。


嗨,它说:“不能将mysql识别为内部或外部命令,可操作程序或批处理文件。” 非常感谢。
user948950 2011年

1
您可能需要将mysql bin目录bin主MySQL目录中的目录)添加到系统路径中。然后mysql客户端程序将可从任何地方使用。或者,您可以在cd-MySQL bin目录后运行该命令。两者都应该起作用。
塞尔吉奥

2
当我使用此命令$>连接到mysql时,mysql -u root -p -h 127.0.0.1 -P 3306输入密码:错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:NO) [root @ localhost〜]#mysql -u root -p -h 127.0.0.1 -P 3306输入密码:错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:是)[root @本地主机〜]#mysql -u管理员-p -h -127.0.0.1 -P 3306输入密码:错误1045(28000):用户'admin'@'本地主机'的访问被拒绝(使用密码:是)[root @ localhost〜] #
Sumit Munot

15

我在Mac OS上也遇到了类似的问题,并且可以通过以下方式解决它:

在终端上,运行:

mysql -u root -p -h 127.0.0.1 -P 3306

然后,要求我输入密码。我只是按回车由于未设置密码,因此。

我收到如下消息:

欢迎使用MySQL监视器。命令以;结尾; 或\ g。您的MySQL连接ID为181。服务器版本:8.0.11 Homebrew。

如果您成功登录到mysql>,请运行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

您应该收到以下消息:

查询正常,受影响的0行(0.19秒)

现在,您的密码是“ password ”,您的用户名是“ root” ”。

快乐的编码:)


由于禁用了匿名登录,因此这可能不再适用于较新的安装。
en_lorithai


7

我必须以管理员身份启动Workbench。显然,它没有连接到我的本地主机数据库服务器进程所需的权限。

右键单击工作台快捷方式,然后选择Run as Administrator。在快捷方式的“属性”窗口中,可以单击“高级”,然后选中“以管理员身份运行”旁边的框,以始终以管理员权限运行Workbench。


5

发生错误的原因是您的计算机上没有启动mysql服务器。您应该手动启动它。请执行以下步骤:

  1. 根据计算机上的位版本(32位或64位)下载并安装wamp服务器(http://wampserver-64bit.en.softonic.com/),此链接允许您下载64位的wamp服务器。

  2. 安装后,您可以双击并运行它。(您可以在任务栏的右侧看到一个图标。该图标可能已隐藏。因此,您可以单击显示隐藏应用程序运行状态的箭头)。单击图标并转到Mysql

  3. 然后转到“服务”,然后在其中找到“启动/继续服务”

  4. 现在完成了。打开mysql工作台,看看。它将起作用。


4

我在这个问题上苦苦挣扎了一段时间,在发现这个问题之前做了几次MySQL的重新安装。

我知道MySQL服务器运行正常,因为我可以使用命令行访问所有数据库。

希望这对您有用。

MySQL Workbench(5.2.47 CE)中

单击管理服务器实例(右下角)

单击连接

连接框中选择:

本地实例($ ServerName)-root@127.0.0.1:3306'<'Standard(TCP / IP)>

单击编辑选定的...

在“参数”,“主机名”localhost或127.0.0.1更改为您的NetBIOS名称

单击测试连接

如果这对您有用,那就太好了。如果未更改,则将主机名改回原来的名称。


1
什么是NetBIOS名称?
UserYmY 2013年

2
这为我工作。NetBIOS名称是计算机的名称,您可以从系统属性的“计算机名称”选项卡和“完整的计算机名称”中读取它。
NeonMan

3

对于那些忽略了最初的错误消息显示的用户,请注意以下内容:

任何服务文件均未提供名称org.freedesktop.secrets

确保使用以下命令安装gnome-keyring

sudo apt install gnome-keyring

2

我的原因是我尝试使用最新的MySQL Workbench 8.x连接到MySQL Server 5.1(均在Windows Server 2012上运行)。

当我卸载MySQL Workbench 8.x并安装MySQL Workbench 6.3.10时,它成功连接到localhost数据库


1

要了解最新版本和更高版本的访问者,请执行以下操作:

目前,我正在开发一个具有不同工具的win7 64bit,包括python 2.7.4作为Google android的前提...

当我从WB 6.0.8-win32升级到更高版本以具有64位性能时,例如在6.3.5-winx64上出现了一些问题,表格的详细信息视图(无序视图)中存在一个错误,导致我降级到6.2。 5-winx64。

作为GUI用户,简单的前进/后退工程和与db服务器相关的项目运行良好,但是当我们尝试执行查询时,Database>Connect to Database我们将遇到Not connectedpython错误,但是DB服务器服务绝对运行且运行良好而且此问题不是来自服务器,而是工作台。要解决它,我们必须使用Query>Reconnect to Server显式选择数据库连接,然后几乎所有东西看起来都很好(这可能是由于我有多个数据库连接,而我找不到在工作台中定义默认数据库连接的解决方案)。

注意:因为我使用的是最新的Xampp版本(即使在Linux上也是如此:)),最近Xampp使用mariadb 10而不是mysql 5.x导致mysql文件版本为10可能会引起一些问题,例如程序的正向工程可以通过以下方法解决该问题,mysql_upgrade.exe但是当我们尝试检查数据库连接时,wb仍会通知错误的版本,但这并不重要,并且效果很好。

结论:因此,有时工作台中的数据库连接问题可能是由于自身而不是服务器引起的(如果您没有其他与数据库连接有关的问题)。


1

以我为例,我刚刚安装了MySQL Workbench,但在卸载MySQL Workbench并安装MySQL安装程序之后,对于32位和64位都是相同的,然后它像一个魅力一样工作。希望它会有用。


0

我也在这个问题上挣扎了一段时间。

我遇到了来自MySQL论坛的这个有趣的线程:http: //forums.mysql.com/read.php?11,11388,11388#msg-11388

我(显然)也遇到了一些不错的SO Q / A。

看来“ user948950”问题中提到的消息可能来自多种原因:日志文件太大,mysql.ini文件值不正确,文件路径中的空格,安全性/ acl问题,注册表等。

因此,在尝试3h修复此问题之后...我放弃了,决定做一个很好的旧重新安装。

这是(再次)来自该MySQL线程的这篇文章有用的地方,我引用:

加里·威廉姆斯(Gary Williams)写道:大家好,

我遇到了完全相同的问题,这就是从无法正常工作的安装开始为我工作的方式。

  1. 对于任何现有的mysql安装,请停止Windows服务。

  2. 卸载Mysql。

与大多数卸载一样,旧文件也被留下。如果目录为C:\ mysql \ etc,则删除innob等文件,但将目录本身以及所有现有数据库保留在“数据”中。如果您的目录是C:\ Program Files \等,请删除所有mysql目录。

  1. 现在值得运行regedit,以确保通过卸载也删除了旧的注册表项。如果没有,请删除它们。

  2. 可以使用新的.msi安装程序(仅基本文件),但是....

  3. 不要使用其默认安装路径!一些天才在其中设置了空格的路径!选择自定义安装,然后选择一个明智的路径,即C:\ mysql(来自Adrien的说明:C:\ mysqldata用于...数据)

  4. 不要选择更改安全设置。取消选中相关复选框,安装将完成,而无需设置root密码。

我想我已经记住了一切。

祝好运

加里

当我简单地将先前在“ data”目录中的数据库复制/粘贴到新目录时,我确实遇到了麻烦。因此,我发现的解决方法是导出每个数据库(我知道...很有趣),然后一个接一个地重新导入它们。

仅供参考:我使用以下命令import C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql",例如C:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"


0

上一次我遇到类似情况时,上次我发现这是一些Windows更新问题(不确定)。这次,我打开MySQL工作台,但未找到与本地数据库的连接。我看不到表,但是昨天我可以连接到数据库了。

我发现原因是,在让计算机休眠一段时间并再次将其唤醒后,mysql服务未运行。我的解决方案:重新启动名为“ mysql”的服务,然后重新运行工作台。重新启动服务需要一些时间,但它可以工作。


0

我的问题是实际上没有安装MySQL服务器。我已经运行了MySQL Installer,但是没有安装MySQL服务器。

我重新运行安装程序,单击“添加”,然后将MySQL服务器添加到列表中。现在工作正常。


0

问题是未安装MYSQL服务器。您可以从这里获取安装程序

然后观看这6分钟的安装教程

如果然后无法在MYSQL Workbench中创建新连接,请确保以root身份运行该连接,如下所示:

在此处输入图片说明

如果找不到您的.ini文件,请检查此答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.