无法连接到数据库服务器(mysql 工作台)

Posted

技术标签:

【中文标题】无法连接到数据库服务器(mysql 工作台)【英文标题】:Cannot connect to Database server (mysql workbench) 【发布时间】:2011-12-13 10:30:15 【问题描述】:

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

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

无法连接到数据库服务器

用户“root”从主机到服务器的连接尝试失败 127.0.0.1:3306:无法连接到'127.0.0.1'上的mysql服务器(10061)

请:

    检查 mysql 是否在服务器 127.0.0.1 上运行 检查 mysql 是否在 3306 端口上运行(注意:3306 是默认的,但可以更改) 检查 root 是否有权从您的地址连接到 127.0.0.1(mysql 权限定义了哪些客户端可以连接到服务器以及从哪些机器) 确保您在需要时提供密码,并使用正确的密码进行 127.0.0.1 从您要连接的主机地址进行连接

【问题讨论】:

相关dba.stackexchange.com/questions/44485/… 这个答案对我有用。 ***.com/questions/16129399/… 在我的情况下简单的重启帮助 - 但我首先检查@sergio 建议 - ***.com/a/7875732/6705161。 【参考方案1】:

此问题可能是由于在升级到 ubuntu 16.04 期间未设置密码时默认为 root 用户启用了套接字身份验证。

解决方案是恢复到本机密码身份验证。您可以通过使用套接字身份验证登录 MySQL 来做到这一点:

sudo mysql -u root

登录后:

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

这将恢复到本机(旧默认)密码身份验证。

现在在 MySQL 需要时使用 password 作为密码。

【讨论】:

它对我有用,我很惊讶,我已经在安装 mysql 时配置了严格密码,并且与给定的 alter 查询使用了相同的严格密码。我很想知道为什么它在第一次尝试时没有成功 非常感谢!这种行为是否只是为了方便 unix root 用户登录 mysql 而无需输入密码? 很好的解决方案。谢谢兄弟!【参考方案2】:

尝试从开始菜单搜索框打开services.msc并尝试手动启动MySQL服务或直接在Run框中写入services.msc

【讨论】:

对我不起作用。直接从命令行运行“C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe --console”(注意“mysql”和“.exe”之间的“d”确实有效(打开命令行“以管理员身份”)。所以我想找到一种“以管理员身份”启动服务的方法可以解决这个问题。 开始菜单搜索框在哪里? 我的解决方案是使用 sudo: sudo mysql-workbench 运行 Mysql-Workbench。不知道在哪里可以找到 services.msc【参考方案3】:

看来这个错误有很多原因。

我的原因/解决方案

在我的例子中,原因是我的服务器被配置为只接受来自本地主机的连接。我按照这篇文章修复了它:How Do I Enable Remote Access To MySQL Database Server?。我的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连接。

其他原因

有关相当广泛的列表,请参阅Causes of Access-Denied Errors。

【讨论】:

AFAIK,用户的创建是必要的,因为用户 root 应该只用于管理工作,并且明智地应该限制为 localhost。除此之外,您创建什么用户取决于您! 访问被拒绝错误原因的链接现已断开。 我遇到了类似的问题,对我有用的是 mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'Password123#@!'; -> 将所有权限授予 . 到 'username'@'%' WITH GRANT 选项; -> \q 我不必做绑定的事情,我的密码设置为中,您可以使用“SHOW VARIABLES LIKE 'validate_password%';”进行检查注意:这是我的开发 ubuntu 设置【参考方案4】:

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

    打开终端 输入mysql -u root -p -h 127.0.0.1 -P 3306 如果您可以成功连接,您将在输入密码后看到 mysql 提示(输入 quit 并在此处输入退出)。

报告这是如何工作的。

【讨论】:

您好,它说“mysql 不是内部或外部命令、可运行程序或批处理文件。”非常感谢。 您可能希望将the mysql bin directory(MySQL 主目录中的bin 目录)添加到the system path。然后 mysql 客户端程序将在任何地方可用。或者您可以在 cd-ing 到 MySQL bin 目录后运行该命令。两者都应该工作。 当我使用这个命令连接到 mysql 时 $> mysql -u root -p -h 127.0.0.1 -P 3306 Enter password: ERROR 1045 (28000): Access denied for user 'root'@' localhost' (使用密码: NO) [root@localhost ~]# mysql -u root -p -h 127.0.0.1 -P 3306 Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (使用密码:YES) [root@localhost ~]# mysql -u admin -p -h 127.0.0.1 -P 3306 Enter password: ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (使用密码:是)[root@localhost ~]# 为我工作!!非常感谢!【参考方案5】:

我在 Mac OS 上遇到过类似的问题,我可以通过这种方式解决它:

从终端运行:

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

然后,我被要求输入密码。我只是按enter,因为没有设置密码。

我收到一条消息如下:

欢迎使用 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”。

编码愉快:)

【讨论】:

这可能不再适用于较新的安装,因为匿名登录被禁用。【参考方案6】:

运行 ALTER USER 命令。请务必将密码更改为您选择的强密码。

    sudo mysql#登录mysql`

    运行以下命令

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

现在您可以使用新密码访问它了。

参考:https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

【讨论】:

【参考方案7】:

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

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

【讨论】:

【参考方案8】:

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

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

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

    然后转到Service,在那里你可以找到Start/Resume Services点击它..

    现在已经完成了。打开mysql工作台看看。它会工作..

【讨论】:

为我工作!需要手动启动服务器。谢谢【参考方案9】:

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

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

希望这对你有用。

MySQL Workbench (5.2.47 CE)

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

点击连接

连接框中选择:

本地实例 ($ServerName) - root@127.0.0.1:3306 '

点击编辑所选...

Parameters, Hostname 下将 localhost 或 127.0.0.1 更改为您的 NetBios 名称

点击测试连接

如果这对你有用,那就太好了。如果没有将主机名改回原来的样子。

【讨论】:

这对我有用。 NetBIOS 名称是计算机的名称,您可以从系统属性,“计算机名称”选项卡,“计算机全名”中读取。【参考方案10】:

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

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

【讨论】:

【参考方案11】:

对于那些忽略了初始错误消息显示如下的人:

名称 org.freedesktop.secrets 不是由任何 .service 文件提供的

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

sudo apt install gnome-keyring

【讨论】:

【参考方案12】:

我在 Ubuntu 上使用 Workbench 时遇到了同样的问题,问题在于许可。

    查找 Workbench 应用程序 点击按钮权限 为此应用授予所有权限

【讨论】:

【参考方案13】:

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

我发现我的原因是,让我的电脑休眠一段时间后再次唤醒它,mysql服务没有运行。 我的解决方案:重新启动名为“mysql”的服务并重新运行工作台。重新启动服务需要一段时间,但它可以工作。

【讨论】:

【参考方案14】:

为更高版本和更高版本的访问者提供最新信息:

目前我正在开发一个 64 位的 win7,上面有不同的工具,包括 python 2.7.4 作为 google android 的先决条件......

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

作为一个 GUI 用户,简单的前向/后向工程和数据库服务器相关项目运行良好,但是当我们尝试 Database>Connect to Database 时,我们将有 Not connected 并且如果我们尝试执行查询则会出现 python 错误但是数据库服务器服务绝对运行并且运行良好,这个问题不是来自服务器,而是来自工作台。要解决它,我们必须使用Query>Reconnect to Server 明确选择数据库连接,然后几乎一切看起来都很好(这可能是由于我的多个数据库连接,我找不到在工作台中定义默认数据库连接的解决方案)。

作为说明:因为我使用的是最新的 Xampp 版本(即使在 linux 上瘾 :)),最近 Xampp 使用 mariadb 10 而不是 mysql 5.x 导致 mysql 文件版本为 10 可能会导致一些问题,例如转发可以通过mysql_upgrade.exe 解决的程序工程,但是当我们尝试检查数据库连接时,wb 会通知错误的版本,但它并不重要并且运行良好。

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

【讨论】:

【参考方案15】:

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

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

【讨论】:

【参考方案16】:

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

【讨论】:

【参考方案17】:

即使我在打开 MYSQL 工作台时也遇到了类似的错误。 对我有用的解决方案是

    点击windows机器中的开始按钮 输入服务并按回车 找到MYSQL并点击它 在左侧面板的顶部,您会发现启动服务 点击显示为超链接的开始

希望这可能会有所帮助。

【讨论】:

【参考方案18】:

我尝试了这些步骤 -

第 1 步: 转到 Ubuntu 软件中心

第 2 步: 搜索 MySql Workbench

第 3 步:然后点击权限

第 4 步:启用读取、添加、更改或删除已保存的密码

然后,输入登录密码

然后,我发现我的问题解决了

【讨论】:

【参考方案19】:

我也为这个问题苦苦挣扎了好一阵子。

我遇到了这个interesting thread from MySQL forum: http://forums.mysql.com/read.php?11,11388,11388#msg-11388

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

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

所以,在尝试了 3 小时来解决这个问题之后......我放弃并决定重新安装一个好的旧版本。

这是this post from (again) this MySQL thread came in useful,我引用:

Gary Williams 写道:大家好,

我遇到了完全相同的问题,这就是我的工作方式 对我来说,从非工作安装开始。

    停止任何现有 mysql 安装的 windows 服务。

    卸载 Mysql。

与大多数卸载一样,旧文件会被遗留下来。如果你的目录 是 C:\mysql\ etc 然后删除 innob 等文件,但保留 目录本身以及“数据”中的任何现有数据库。 如果你的目录是C:\Program Files\等,删除所有mysql 目录。

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

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

    不要使用他们的默认安装路径!一些天才设置了一条带有空格的路径!选择自定义安装并选择合理的路径, 即,C:\mysql(来自 Adrien 的注释:C:\mysqldata for ... the data)

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

我想我已经记住了一切。

祝你好运

加里

当我简单地将我以前的“数据”目录中的数据库复制/粘贴到新目录时,我确实遇到了麻烦。所以我发现的工作是导出每个数据库(我知道......很有趣),然后一个一个地重新导入它们。

仅供参考:我使用以下命令导入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"

【讨论】:

【参考方案20】:

问题是没有安装MYSQL服务器。 您可以从here获取安装程序

然后观看这个 6 分钟的安装tutorial。

如果在 MYSQL Workbench 中创建新连接不起作用,请确保以 root 身份运行该连接,如下所示:

如果您没有找到您的 .ini 文件,请检查 this answer.

【讨论】:

【参考方案21】:

在我的情况下,安装没有将 MySQL\MySQL Server 5.7/bin 文件夹添加到我的 PATH 环境变量中。

【讨论】:

【参考方案22】:

    右击你的任务栏->Task Manager

    点击Services按钮

    搜索MYSQL80 或您正在使用的任何其他

    右键MYSQL80 --> Start

这对我有用,希望对你也有用

【讨论】:

以上是关于无法连接到数据库服务器(mysql 工作台)的主要内容,如果未能解决你的问题,请参考以下文章

无法使用Debian 9下的mysql工作台连接到数据库服务器

Web API 在使用几天后总是无法连接到 MYSQL 数据库

错误:“无法连接到数据库服务器”

无法在 Kubernetes 中从工作连接到服务

无法从 MYSQL Workbench 6.3 CE 连接到 MS SQL 服务器 [重复]

无法从 SQL WORKBENCH 连接到 AWS RDS mysql