你能帮我解决这个问题吗?
当我尝试单击 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
该问题可能是由于在升级到 ubuntu 16.04 期间未设置密码时默认为 root 用户启用了套接字身份验证。
解决方案是恢复到本机密码身份验证。您可以通过执行以下操作使用套接字身份验证登录 MySQL 来做到这一点:
sudo mysql -u root
登录后:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
这将恢复到本机(旧默认)密码身份验证。
现在在 MySQL 需要时使用密码作为密码。
尝试从开始菜单搜索框打开 services.msc
并尝试手动启动 MySQL 服务或直接在 Run
框中写入 services.msc
sudo mysql-workbench
运行 Mysql-Workbench。不知道在哪里可以找到 services.msc
看起来这个错误有很多原因。
我的原因/解决方案
就我而言,原因是我的服务器被配置为只接受来自本地主机的连接。我按照这篇文章修复了它: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。
您是否尝试确定这是 Workbench 的问题还是一般的连接问题?尝试这个:
打开终端 输入 mysql -u root -p -h 127.0.0.1 -P 3306 如果可以连接成功,在输入密码后会看到 mysql 提示(输入 quit 并 Enter 退出)。
报告这是如何工作的。
bin
目录)添加到 the system path。然后 mysql 客户端程序将在任何地方可用。或者您可以在 cd-ing 到 MySQL bin 目录后运行该命令。两者都应该工作。
我在 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”。
快乐编码:)
运行 ALTER USER 命令。请务必将密码更改为您选择的强密码。
sudo mysql # Login to 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
我必须以管理员身份启动 Workbench。显然它没有连接到我的本地主机数据库服务器进程所需的权限。
右键单击 Workbench 快捷方式并选择 Run as Administrator
。在快捷方式的“属性”窗口中,您可以单击“高级”并勾选“以管理员身份运行”旁边的框,以始终以管理员权限运行工作台。
发生错误是因为 mysql 服务器未在您的计算机上启动。您应该手动启动它。执行以下步骤:
根据您计算机中的位版本(32 位或 64 位)下载并安装 wamp 服务器(http://wampserver-64bit.en.softonic.com/)此链接允许您下载 64 位的 wamp 服务器。安装后,您可以双击并运行它..(您可以在任务栏的右侧看到一个图标。它可能是隐藏的。因此您可以单击显示隐藏应用程序运行的箭头)。所以单击图标并转到 Mysql 然后转到 Service 并在那里您可以找到 Start/Resume Services 单击它。现在它完成了。打开 mysql 工作台并查看。它将工作..
我在这个问题上挣扎了一段时间,并在发现这个问题之前重新安装了几次 MySQL。
我知道 MySQL 服务器运行正常,因为我可以使用命令行访问我的所有数据库。
希望这对你有用。
在 MySQL 工作台中 (5.2.47 CE)
单击管理服务器实例(右下角)
单击连接
在连接框中选择:
本地实例 ($ServerName) - root@127.0.0.1:3306 '<'Standard(TCP/IP)>
单击编辑所选...
在参数下,主机名将 localhost 或 127.0.0.1 更改为您的 NetBIOS 名称
单击测试连接
如果这对你有用,那就太好了。如果没有将主机名更改回原来的样子。
我的原因是我尝试使用最新的 MySQL Workbench 8.x 连接到 MySQL Server 5.1(都在 Windows Server 2012 上运行)。
当我卸载 MySQL Workbench 8.x 并安装 MySQL Workbench 6.3.10 时,它成功连接到 localhost
数据库
对于那些忽略显示的初始错误消息的人如下:
任何 .service 文件均未提供名称 org.freedesktop.secrets
确保使用以下命令安装 gnome-keyring
sudo apt install gnome-keyring
我在 Ubuntu 上的 Workbench 也有同样的问题,问题出在许可上。
查找 Workbench 应用 单击按钮 权限 授予此应用的所有权限
https://i.stack.imgur.com/EBO5w.png
我尝试了这些步骤 -
第 1 步:转到 Ubuntu 软件中心
第 2 步:搜索 MySql Workbench
第 3 步:然后点击权限
第 4 步:启用读取、添加、更改或删除已保存的密码
然后,输入登录密码
https://i.stack.imgur.com/J9ZXT.png
之前和上次我都遇到过类似的情况,我发现这是一些 Windows 更新问题(不确定)。这一次,我打开 MySQL 工作台,发现没有连接到我的本地数据库。我看不到我的表,但昨天我可以连接到数据库。
我发现我的原因是,让我的电脑休眠一段时间并再次唤醒后,mysql服务没有运行。我的解决方案:重新启动名为“mysql”的服务并重新运行工作台。重新启动服务需要一段时间,但它可以工作。
为更高版本和更高版本的访问者提供最新信息:
目前我正在开发一个win7 64bit,上面有不同的工具,包括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 仍会通知错误的版本,但它并不重要并且运行良好。
结论:因此有时工作台中的数据库连接问题可能是由于它本身而不是服务器(如果您没有其他数据库连接相关问题)。
我的问题是 MySQL 服务器实际上没有安装。我已经运行了 MySQL 安装程序,但它没有安装 MySQL 服务器。
我重新运行安装程序,单击“添加”,然后将 MySQL 服务器添加到列表中。现在它工作正常。
在我的情况下,我刚刚安装了 MySQL Workbench,但是在卸载 MySQL Workbench 并安装 MySQL 安装程序之后,32 位和 64 位都相同,然后它就像一个魅力一样工作。希望它可能有用。
即使我在打开 MYSQL 工作台时也遇到了类似的错误。对我有用的解决方案是
单击 Windows 机器中的开始按钮 键入服务并按 Enter 查找 MYSQL 并单击它 在左侧面板的顶部,您将找到一个选项作为启动服务单击开始,它显示为超链接
希望这可能会有所帮助。
问题是没有安装MYSQL服务器。您可以从 here 获取安装程序
然后观看这个 6 分钟的安装 tutorial。
如果在 MYSQL Workbench 中创建新连接不起作用,请确保以 root 身份运行该连接,如下所示:
https://i.stack.imgur.com/UE6X1.png
如果您没有找到您的 .ini 文件,请检查 this answer.(也写在下面)
Enter "services.msc" on the Start menu search box.
Find MySQL service under Name column, for example, MySQL56.
Right click on MySQL service, and select Properties menu.
Look for "Path To Executable" under General tab, and there is your .ini file, for instance, "C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MYSQL56
我也为这个问题苦苦挣扎了很长一段时间。
我遇到了这个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\ 等,则删除 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"
2022 年及以后这对我有用:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
改变
bind-address = 127.0.0.1
至
bind-address = 0.0.0.0
然后记得重启mysqlsudo systemctl restart mysql