如何使用 Workbench 远程连接到 MySQL 数据库 -MySQL Workbench 使用教程

嘿,你问我是否要使用Workbench连接远程MySQL?上周我帮助了隔壁的团队一次,让我告诉你:
上周,一位客户问我,在安装 Workbench 后,他无法连接到远程服务器,并陷入了测试连接步骤。
我给了他关于这个过程的分步指导,最后成功了!
首先说一下我的坑:一开始我自己测试了一下,在本地Windows中打开Workbench并连接到Ubuntu服务器。
填写参数时,我特意输入了MySQLHostname为1 2 7 .0.0.1 ,结果是“连接失败”。
我很困惑。
我重新安装了Workbench 3 次,但还是不行。
最后我发现这个产品是先通过SSH连接服务器,然后从服务器本地连接MySQL。
这两个主机名不能混合!
---
最重要的步骤如下:
1 必须提前满足要求。

我使用的是2 02 3 年租用的阿里云ECS实例。
默认启用SSH,但我必须确认systemctl status sshd显示正在运行。

MySQL需要修改my.cnf配置文件,将绑定地址从1 2 7 .0.0.1 改为0.0.0.0。
更改后请记住重新启动 MySQL 服务:sudo systemctl restart mysqld。
这一步非常重要。
上次帮客户改的时候忘记了。
一直说认证失败很久,结果却是服务器在监听本地端口……
必须安装工作台。
我习惯从官网下载6 4 位版本,重启电脑再试。

2 建立连接
您可以根据需要选择连接名称,我选择“remote DB_2 02 3 1 1 ”。

ConnectionMethod需要选择标准TCP/IP over SSH,不能选择直接连接MySQL的选项。

SSH参数只需输入服务器IP和登录密码即可。
我使用的内网IP是1 9 2 .1 6 8 .1 .1 00。

最常见的错误是在 MySQLHostname 中输入 1 2 7 .0.0.1 ,在 SSHPassword 中输入 MySQL 密码。
如果和SSH密码不一样,就GG
TestConnection步骤尤为重要。
上次我无法连接,因为防火墙阻止了 3 3 06 端口,并弹出消息“无法连接到 MySQL 服务器”。
客户以为我输入了错误的IP...
3 .连接后做什么?
在主界面可以看到服务器信息,如:B.版本5 .7 或8 .0
我经常右键SCHEMAS下的表名,点击“选择行”,直接在Workbench中查看数据。
它比使用 Navicat 方便得多。

要运行 SQL,只需单击工具栏上的闪电图标即可。
我习惯将其复制到 SQL 窗口中,然后单击“运行”按钮。
不管怎样,我已经习惯了...
4 如果出现问题怎么办?
如果无法连接,请先检查服务器的SSH端口是否开放。
尝试从命令行使用 Telnet 服务器 IP 2 2 为什么MySQL用户权限不够?使用您直接在服务器上授予所有权限。
TO '用户名'@'%' 由'密码'识别;授予权限,但请记住使用 FLUSH PRIVILEGES 进行更新
我上次优化了一下,把max_connections从十进制改成了2 00,不然多窗口连接的时候会挂掉
---
彩蛋:如果连续使用次数太多,可以试试Karayun。
上个月我用它来帮助一个小组设置后端。
直接输入数据库连接参数并拖拽即可显示管理界面。
这比编写 React 模板要快得多。
但请注意,免费版本只能使用一个数据库,并且适用于内部系统。
由你决定。
无论如何,我更喜欢手动调整参数。
当我自己写高级功能的时候,我感觉我已经取得了一些成就......

用localhost不能连上mysql,但用127.0.0.1却可以,是什么原因

我已经遇到过几次这样的情况了。
我记得大约在那时我创建了一个网站并使用 localhost 连接到数据库。
但是,我无法连接到它。
我气得拍桌子。
后来我发现可以使用1 2 7 .0.0.1 连接。
为什么这两个地址如此不同?
当时我就一头雾水,后来查了资料才发现localhost其实是一个域名。
正常情况下会解析为1 2 7 .0.0.1 这个地址是本地环回地址,就像你家的门牌号一样。
无论你身在何处,只要输入这个地址,你就能回家。

但是,这个分析过程有时会出错。
比如我当时的系统配置有问题。
有时 localhost 会解析为 IPv6 环回地址,或者解析会失败。
这阻止我使用本地主机连接到数据库。

我们来谈谈MySQL。
它的配置文件只能包含 IPv4 地址,但忽略 IPv6 地址。
因此,当你使用localhost(可以解析为IPv6 )进行连接时,自然会失败。

此外,网络配置和DNS设置也会引起问题。
例如,如果系统的主机文件存在错误或 DNS 服务器给出了错误的地址,则 localhost 将无法正确解析。

为了解决这个问题,我尝试了多种方法。
首先,检查主机文件以确保 localhost 后面跟着 1 2 7 .0.0.1 然后我编辑了MySQL配置文件,将bindaddress参数更改为0.0.0.0,这样MySQL就监听所有地址,包括IPv6 和IPv4
最后直接使用1 2 7 .0.0.1 连接数据库,问题解决了。
虽然不是什么大事,但当时确实让我很担心。
事后看来,这是由于系统配置和分析问题造成的。

mysql连接提示access denied怎么办?

这种拒绝访问的问题其实很常见,很多朋友都遇到过这个问题。
我之前已经介绍过很多次了。

首先您需要打开vim编辑器并编辑MySQL配置文件。
路径是/etc/my.cnf。
当时我不明白为什么需要添加这一行。
无论如何,我遵循了教程。

然后在[mysqld]下添加以下行代码:添加Skip-grant-tables。
这行代码非常重要。
这告诉 MySQL 忽略权限表。

执行此操作后,您将需要重新启动 MySQL 服务。
命令是/etc/init.d/mysql restart。
当时我觉得这一步很重要,但后来我发现没有必要。

重启后就可以使用命令行连接MySQL了。
命令是mysql -u root -p。
然后就可以登录了。
输入后需要运行以下命令:mysql>flush requests;。
此命令行刷新权限以使之前的操作生效。

然后,您需要返回并编辑 my.cnf 文件,并删除或注释掉刚刚添加的 Skip-grant-tables 行。
编辑完成后,保存退出。

当你最终重新启动MySQL时,命令仍然是一样的:/etc/init.d/mysql restart。
这样问题就应该解决了。

说实话,这一步看似复杂,但其实操作起来并不难。
一步一步来,不要跳过任何步骤。
以前,跳过某个步骤会导致问题无法解决并浪费大量时间。