无法连接到数据库服务器(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 数据库